5

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

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

如果可能的话,我正试图找到一种方法来减少这种情况,因为我们有 12 个数据库,我们谈论的数据库部署至少需要 12 分钟,这对我们来说太多了。

你知道有什么方法可以减少这种情况吗?

4

2 回答 2

1

我相信,前面的时间用于从数据库中获取当前模式,将其与 dacpac 中的内容进行比较,并提出所需的更改脚本。使用 dacpac 无法消除这种情况。

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

如果您的所有数据库都保证处于相同(模式)状态,您可以只在第一个数据库上创建一个升级脚本并在所有数据库上运行它。

于 2015-08-09T21:14:26.597 回答
0

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

于 2017-11-17T04:48:46.860 回答