我正在使用SMO執行批量SQL腳本。在Management Studio中,該腳本在大約2秒內執行。使用以下代碼,大約需要15秒。SQL SMO執行批量TSQL腳本
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);
}
的腳本創建一個新的數據庫,並跨越了幾桌插入幾千行。由此產生的DB大小約爲5MB。
任何人都有任何這方面的經驗,或有建議,爲什麼這可能會與SMO如此緩慢地運行?
我會說這是不值得擔心的,15秒創建數據庫似乎是合理的。除了當你在SSMS中執行查詢時,你已經連接到服務器了嗎?不同的客戶機? – MrEdmundo 2010-11-10 08:55:13
同一臺客戶機。打開連接似乎並不需要很長時間,只需執行ExecuteNonQuery調用即可。值得關注的是,這一步是我們單元測試的AssemblyInitialize方法的一部分,因此,啓動單元測試需要額外的15秒鐘是一件非常煩惱的事情。 – Jeff 2010-11-10 15:38:26
有人嗎?我真的想用這些腳本來進行單元測試。 – Jeff 2010-11-22 20:38:11