Я использую 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);
}
Сценарий создает новую базу данных и вставляет несколько тысяч строк в несколько таблиц. Полученный размер БД составляет около 5 МБ.
Кто-нибудь имеет какой-либо опыт с этим или есть предложение, почему это может работать так медленно с SMO?