使用部署管道从 DevOps 到 Azure 的 DACPAC 部署速度非常慢
Incredibly slow DACPAC deploy from DevOps to an Azure with deployment pipeline
Azure DevOps 发布管道需要很长时间(大约 25 分钟)来部署 dacpac。我很确定这不会花那么多时间。这里有些不寻常。
经过研究,我纠正了一些警告,但这些警告并不那么重要。但现在 dacpac 项目中没有警告。
- Db 包含大约 50 个数据最少的表
- 几个存储过程
- 几个 post-build 脚本
请查看以下日志。
非常感谢专家的帮助。
折腾了半天终于找到问题了。
发布此答案,因为这可能对某人有帮助。
在我的例子中,发生的事情是有 post 部署脚本,由于它的编写方式,它逐行执行 insted 批处理。
SET IDENTITY_INSERT ###
GO
INSERT [dbo].###
GO
INSERT [dbo].###
GO
INSERT [dbo].###
GO
因此删除脚本中的所有 GO 语句使事情执行顺利,因为它将作为批处理执行。
令人惊讶的是我的时间从 25 分钟减少到 2 分钟。
因此,请始终确保您是否有任何 SQL 脚本作为 post-build 在管道中执行。投注者尽可能优化这些。
希望这会对某人有所帮助。
Azure DevOps 发布管道需要很长时间(大约 25 分钟)来部署 dacpac。我很确定这不会花那么多时间。这里有些不寻常。 经过研究,我纠正了一些警告,但这些警告并不那么重要。但现在 dacpac 项目中没有警告。
- Db 包含大约 50 个数据最少的表
- 几个存储过程
- 几个 post-build 脚本
请查看以下日志。 非常感谢专家的帮助。
折腾了半天终于找到问题了。 发布此答案,因为这可能对某人有帮助。 在我的例子中,发生的事情是有 post 部署脚本,由于它的编写方式,它逐行执行 insted 批处理。
SET IDENTITY_INSERT ###
GO
INSERT [dbo].###
GO
INSERT [dbo].###
GO
INSERT [dbo].###
GO
因此删除脚本中的所有 GO 语句使事情执行顺利,因为它将作为批处理执行。
令人惊讶的是我的时间从 25 分钟减少到 2 分钟。 因此,请始终确保您是否有任何 SQL 脚本作为 post-build 在管道中执行。投注者尽可能优化这些。
希望这会对某人有所帮助。