SqlPackage.exe需要很长时间

时间:2015-08-06 12:21:17

标签: sql-server powershell sql-server-data-tools dacpac

因此,我们正在努力添加SQL DACPAC作为我们持续集成的一部分。我们使用每个DacPac文件运行“sqlpackage.exe”的powershell脚本执行此操作。我们有大约12个DB,所以它大约有12个DacPac。

每次我们运行“sqlpackage.exe”发布或编写DacPac脚本时,我们都会注意到完成初始化需要0.5-1 + min。当“sqlpackage.exe”开始时,大部分时间是在初始化流程期间进行的。

我正试图找到一种方法来减少这种情况,因为我们有12个数据库,我们谈论数据库部署至少12分钟,这对我们来说太过分了。

你知道有什么方法可以减少这个吗?

2 个答案:

答案 0 :(得分:1)

我认为,预先计时用于从数据库获取当前架构,将其与dacpac中的内容进行比较,并提出所需的更改脚本。 使用dacpac无法消除这种情况。

但是,您可以通过让SqlPackage创建升级脚本,然后在部署时运行脚本来提前完成。这可以将停机时间减少到运行脚本所需的时间,并且如所建议的,如果并行运行,停机时间可能会大大减少。

如果所有数据库保证处于相同(架构)状态,您只需在第一个数据库中创建一个升级脚本,然后在所有数据库上运行它。

答案 1 :(得分:0)

这可能为时已晚,但可能对其他人有用 - 我们发现在SQL服务器上打开防火墙中的所有端口解决了我们的部署问题需要很长时间。大约4-5分钟到大约1分钟。