Новость из категории: Информация

Табличные переменные и временные таблицы в SQL Server 2014: параллельная инструкция SELECT INTO

Содержание:
1. Типы таблиц, оптимизированных для размещения в оперативной памяти, и параметры TVP;
2. Параллельная инструкция SELECT INTO (Вы читаете данный раздел);
3. Кардинальность с флагом трассировки 2453.
Табличные переменные и временные таблицы в SQL Server 2014: параллельная инструкция SELECT INTO

До появления SQL Server 2014 инструкцию SELECT INTO нельзя было обрабатывать параллельно. В частности собственно элемент вставки (оператор Table Insert) всегда обрабатывался в последовательной зоне. В SQL Server 2014 появилась возможность параллельной обработки SELECT INTO. Красота этого решения в том, что оно не требует никаких изменений со стороны пользователя, помимо использования SQL Server 2014. Благодаря параллельной обработке достигается существенное повышение производительности. Возможности не ограничиваются использованием временных таблиц в качестве цели, но SELECT INTO очень часто используется для создания и заполнения целевой временной таблицы.

Табличные переменные и временные таблицы в SQL Server 2014: параллельная инструкция SELECT INTO
Использование параллельности инструкций SELECT INTO

В качестве примера я выполнил приведенный выше программный код как в SQL Server 2012, так и в SQL Server 2014. Если у вас он не работает, тогда вам скорее всего потребуется ремонт компьютера киев (http://helpcomputer.com.ua/) или, по крайней мере, переустановка SQL Server.

Табличные переменные и временные таблицы в SQL Server 2014: параллельная инструкция SELECT INTO
План для SQL Server 2012

На рисунке выше показан план для SQ! Server 2012 (с последовательным оператором Table Insert), а на рисунке ниже — план, полученный для SQL Server 2014 (с параллельным оператором Table Insert).

Табличные переменные и временные таблицы в SQL Server 2014: параллельная инструкция SELECT INTO
План для SQL Server 2014

Обязательные операции записи

В SQL Server используется функция, известная как «обязательные операции записи» (eager writes), благодаря которой групповые операции не заполняют память новыми страницами за счет существующих кэшированных страниц. Идея заключается в отслеживании циклического списка из 32 «грязных» страниц. Когда список полон, eager writes записывают их на диск, чтобы освободить список для нового набора страниц. Недостаток этой функции в том, что при кратковременных групповых операциях в tempdb (например, SELECT INTO #TempTable, CREATE INDEX WITH SORT_IN_TEMPDB и др.) в конечном итоге возникает интенсивная физическая активность диска, которая негативно отражается на производительности операции. В SQL Server 2014 реализовано дополнение, облегчающее обязательные операции записи для любой страницы, на которую ведется запись групповой операции. Например, если хранимая процедура создает и заполняет временную таблицу с помощью инструкции SELECT INTO и быстро завершается, то, скорее всего, физическая активность диска будет отсутствовать.

Чтобы получить информацию об обязательных операциях записи, можно установить в сеансе флаг трассировки 3917. Также необходимо установить флаг трассировки 3604, чтобы получить выходные данные, направляемые клиенту, или флаг 3605, чтобы получить данные, направляемые в журнал ошибок.

Достоинство этой функции в том, что, как и в случае с параллельной инструкцией SELECT INTO, пользователю не требуется изменять свой программный код. Производительность просто повышается, если использовать версию продукта с номером сборки, которая поддерживает это улучшение. Это новшество появилось в SQL Server 2014, но позднее было перенесено в предыдущие версии — SQL Server 2012 SP1 CU10 и SQL Server 2012 SP2 CU1 (http://support2.microsoft.com/kb/2958012/en-us?sd=rss&spid=1044).

Дополнительные сведения об улучшениях в обязательных операциях записи можно найти в блоге CSS SQL Server Engineers (http://blogs.msdn.com/b/psssql/archive/2014/04/09/sql-server-2014-tempdb-hidden-pcrformance-gem.aspx).

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх