Избавление от Шпульки Таблицы в Плане выполнения SQL Server

У меня есть запрос, который составляет несколько временных таблиц и затем вставляет данные в них. Из того, что я понимаю, что это - потенциальная причина Шпульки Таблицы. Когда я смотрю на свой план выполнения, объем моей обработки потрачен на Шпульку Таблицы. Есть ли какие-либо хорошие методы для улучшения этих типов проблем производительности? Был бы с помощью представления, или CTE предлагают мне какие-либо преимущества по временным таблицам?

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

13
задан Dustin Laine 8 June 2011 в 16:53
поделиться

1 ответ

Что ж, по предоставленной вами информации я могу сказать только одно: оптимизатор запросов выбрал наилучший из возможных планов. Он использует катушки стола для ускорения выполнения. Альтернативы, которые не используют спул таблиц, будут еще медленнее.

Как насчет отображения запроса, схемы (таблиц) и количества элементов, а также плана.

Обновление

Я, конечно, понимаю, если вы не можете показать нам запрос. Но действительно сложно догадаться, почему движок предпочитает буферизацию, не зная каких-либо особенностей. Я рекомендую вам просмотреть блог Крейга Фридмана, он является инженером в группе оптимизаторов запросов и объяснил многие внутренние механизмы оптимизатора SQL 2005/2008. Вот несколько записей, которые я мог быстро найти, которые касаются темы спулинга в той или иной форме:

Группа поддержки клиентов SQL также ведет интересный блог на http://blogs.msdn.com/psssql/
и sqltips (блог группы реляционного движка) есть несколько советов, например Операторы очереди в плане запроса ...

20
ответ дан 1 December 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: