gpt4 book ai didi

sql-server - Dacpac 升级数据库 时间有点傻

转载 作者:行者123 更新时间:2023-12-02 14:14:52 26 4
gpt4 key购买 nike

编辑:更新为状态它没有挂起,只需要很长时间!

我正在尝试使用 dacpac 更新现有的 SQL Server 数据库。

我可以在 30 秒内使用下面的(精简的)示例创建一个新的 SQL Server 数据库。我遇到的问题是,使用相同的 dacpac,重新运行该过程(因此它更新现有数据库而不是重新创建)需要 20 分钟。

这种时差是可以预料的吗?综合使用redgate的SqlCompare后,我发现时间过得不亦乐乎。

部署方法的第三个参数是 UpgradeExisting,我将其设置为 true - 这是我需要做的全部还是我遗漏了什么?

void Deploy(string TargetConnectionString, string TargetDatabaseName, string pathToSourceDACPAC)
{

DacServices dacServices = new DacServices(TargetConnectionString);

//Set up message and progress handlers
dacServices.Message += new EventHandler<DacMessageEventArgs>(dbServices_Message);
dacServices.ProgressChanged += new EventHandler<DacProgressEventArgs>(dbServices_ProgressChanged);

//Load the DACPAC
DacPackage dacpac = DacPackage.Load(pathToSourceDACPAC);

//Set Deployment Options
DacDeployOptions dacOptions = new DacDeployOptions();
dacOptions.AllowIncompatiblePlatform = true;

//Deploy the dacpac
dacServices.Deploy(dacpac, TargetDatabaseName, true, dacOptions);

}

//Event handlers...
void dbServices_Message(object sender, DacMessageEventArgs e)
{
OutputThis("DAC Message", e.Message.ToString());
}

void dbServices_ProgressChanged(object sender, DacProgressEventArgs e)
{
OutputThis(e.Status.ToString(), e.Message.ToString());
}

注意,程序在 dacServices.Deploy 线上消失在以太中..

最佳答案

好吧,在运行调试器(VS2012)时经历了愚蠢的时光。编译后,选择 Memory DacSchemaModelStorageType 时的时间为 25 秒左右,选择 File DacSchemaModelStorageType 时的时间为 45 秒左右。

我想这只是意味着调试是一件痛苦的事情!

关于sql-server - Dacpac 升级数据库 时间有点傻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16358718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com