我正在使用 SMO 执行批处理 SQL 脚本。在 Management Studio 中,该脚本的执行时间约为 2 秒。使用以下代码,大约需要 15 秒。
var connectionString = GetConnectionString();
// need to use master because the DB in the connection string no longer exists
// because we dropped it already
var builder = new SqlConnectionStringBuilder(connectionString)
{
InitialCatalog = "master"
};
using (var sqlConnection = new SqlConnection(builder.ToString()))
{
var serverConnection = new ServerConnection(sqlConnection);
var server = new Server(serverConnection);
// hangs here for about 12 -15 seconds
server.ConnectionContext.ExecuteNonQuery(sql);
}
该脚本创建一个新数据库并在几个表中插入几千行。生成的数据库大小约为 5MB。
任何人有这方面的经验或有关于为什么 SMO 运行如此缓慢的建议吗?
SMO 在后台做了很多奇怪的事情,这是您为以面向对象的方式处理服务器/数据库对象的能力付出的代价。
既然您没有使用 SMO 的 OO 功能,为什么不完全忽略 SMO 并简单地通过普通 ADO 运行脚本呢?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)