因此,我们正在努力添加SQL DACPAC,作为我们持续集成的一部分。我们通过对每个DacPac文件运行"sqlpackage.exe“的powershell脚本来实现这一点。我们大约有12个DBs,所以大约是12个DacPacs。
每次我们运行"sqlpackage.exe“来发布或编写DacPac脚本时,我们注意到它需要0.5-1+分钟来完成初始化。大部分时间是在"sqlpackage.exe“开始时的初始化流程中占用的。
我正在试图找到一种方法,如果可能的话,因为我们有12个DB,我们谈论的是至少12分钟的DB部署,这对我们来说太多了。
你知道有什么方法可以减少这种情况吗?
发布于 2015-08-10 05:14:27
我认为,前面的时间用于从数据库中获取当前模式,将其与dacpac中的模式进行比较,并提出所需的更改脚本。没有办法使用dacpac来消除这种情况。
但是,您可以提前让SqlPackage创建升级脚本,然后在部署时运行这些脚本。这可以将停机时间减少到运行脚本所需的时间,并且,正如所建议的那样,如果并行运行,停机时间可以大大减少。
如果您的所有DB都是保证的,那么将处于相同的(模式)状态,那么您只需在第一个DB上创建一个升级脚本,然后在所有DB上运行它。
发布于 2017-11-17 12:48:47
这可能太晚了,但对其他人可能有用-我们发现,在SQL服务器上开放防火墙中的所有端口解决了我们部署时间较长的问题。从大约4-5分钟增加到大约1分钟。
https://stackoverflow.com/questions/31855636
复制相似问题