2013-04-22 7 views
1

Я выполняю один SQL-запрос в SQL Server Management Studio (2008) и тот же запрос, используя SqlCommand (.net 3.5) в C#.Выполнение запросов Sql Временная разница между SSMS и SqlCommand

В студии управления запрос выполняется в 1,6 минуты для завершения. Тот же запрос принимает 9 минут с использованием SqlCommand в C#.

Почему огромная разница между SQL Server Management Studio & SqlCommand?

Пожалуйста, помогите мне найти решение в определении разницы во времени.

Заранее спасибо.

Запрос:

SELECT * INTO [target_table] 
FROM [source_table] WHERE Group_ID IN (1,2,3,4,5,6,7,8,9,10) 

Это копирует около 1 миллиона строк в таблице target_table & содержит 220 столбцов.

+0

Привет, Марк, спасибо за быстрый комментарий. Я добавил запрос в вопрос. – nRk

+1

Хорошо, вам нужно ** все ** столбцы ?? Если нет - ** укажите **, какие вам действительно нужны! Также: есть ли указатель на 'Group_ID'? –

+0

yes Мне нужны все столбцы, а group_id - индексные ключи (составной первичный ключ). – nRk

ответ

2

Поскольку вы спрашиваете, что вызывает разницу между этими двумя средами, я попытаюсь ответить на этот вопрос, а не на вопрос о том, как сделать более 1000 000 записей быстрее.

Этот question and answer является хорошим руководством по поиску неисправностей в вашей ситуации. Если вы используете ту же самую команду или вызов хранимой процедуры и последовательно получаете эту разницу в результатах, наиболее вероятным виновником могут быть разные параметры SET.

Попробуйте использовать профилировщик, чтобы узнать, какие параметры SET заданы при выполнении вставки в SSMS. Сделайте то же самое с вашей рутиной C#. Сравните их и посмотрите, что SSMS устанавливает иначе, чем ADO.NET.

+0

Спасибо Ann, за ответ. Я могу на url объяснить подробно: http://www.sommarskog.se/query-plan-mysteries.html – nRk

Смежные вопросы