Какие проблемы указывает на энергичную катушку

27

В настоящее время работает на SQL Server 2008 R2

Я пытаюсь повысить производительность оператора UPDATE. Я заметил, что в Showplan выскочила операция Eager Spool. Мое понимание операций спулинга довольно простое - они создают временное хранилище для таблицы во время обновления.

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

Мой вопрос довольно прост: когда вы видите Eager Spool в своем плане запросов, с какими проблемами вы сначала обращаетесь?

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

Ник Ваккаро
источник
Вы можете показать план? Катушки могут означать много разных вещей.
USR
И еще пара случаев, когда это может появиться в случае UPDATE, если таблица имеет собственный внешний ключ или ссылается на UDF, которые осуществляют доступ к данным или не привязаны к схеме
Martin Smith

Ответы:

18

Я пытаюсь повысить производительность оператора UPDATE. Я заметил, что в Showplan выскочила операция Eager Spool.

Eager Spools могут добавляться по разным причинам, в том числе для защиты от Хэллоуина , или для оптимизации операций ввода-вывода при обслуживании некластеризованных индексов .

Не видя (даже картину) плана выполнения, трудно быть уверенным, какой из этих сценариев может применяться в вашем конкретном случае. Если важна чувствительность данных, рассмотрите возможность загрузки анонимной версии плана для анализа с помощью SentryOne Plan Explorer .

Вполне возможно, что Eager Spool - это не то, на чем вы должны концентрироваться; Многие факторы влияют на фактическую производительность запросов, которые изменяют данные. Если вы основываете свои усилия по настройке на расчетной процентной стоимости, показанной для оператора Eager Spool, учтите, что эти оценки генерируются с использованием модели, которая не предназначена для соответствия возможностям вашей конкретной конфигурации оборудования.

Пол Уайт говорит, что GoFundMonica
источник
2

Иногда можно избежать нежелательной шпули, когда на месте находятся другие блокирующие операторы, например. Поэтому рекомендуется убедиться, что данные уже отсортированы к моменту достижения этой стадии. (возможно, отсутствующие индексы?)

Если это там для защиты Хэллоуина, то, как сказали другие парни, вы мало что можете сделать.

Джон Алан
источник