В настоящее время работает на SQL Server 2008 R2
Я пытаюсь повысить производительность оператора UPDATE. Я заметил, что в Showplan выскочила операция Eager Spool. Мое понимание операций спулинга довольно простое - они создают временное хранилище для таблицы во время обновления.
Я также знаю, что, хотя они предотвращают гораздо худшее время выполнения, активные буферы часто указывают на основные проблемы со структурой таблицы и / или операторами запроса.
Мой вопрос довольно прост: когда вы видите Eager Spool в своем плане запросов, с какими проблемами вы сначала обращаетесь?
Я буду анализировать каждую часть нашей системы для повышения производительности - я просто ищу руководство относительно того, с чего начать.
sql-server
sql-server-2008-r2
Ник Ваккаро
источник
источник
UPDATE
, если таблица имеет собственный внешний ключ или ссылается на UDF, которые осуществляют доступ к данным или не привязаны к схемеОтветы:
Eager Spools могут добавляться по разным причинам, в том числе для защиты от Хэллоуина , или для оптимизации операций ввода-вывода при обслуживании некластеризованных индексов .
Не видя (даже картину) плана выполнения, трудно быть уверенным, какой из этих сценариев может применяться в вашем конкретном случае. Если важна чувствительность данных, рассмотрите возможность загрузки анонимной версии плана для анализа с помощью SentryOne Plan Explorer .
Вполне возможно, что Eager Spool - это не то, на чем вы должны концентрироваться; Многие факторы влияют на фактическую производительность запросов, которые изменяют данные. Если вы основываете свои усилия по настройке на расчетной процентной стоимости, показанной для оператора Eager Spool, учтите, что эти оценки генерируются с использованием модели, которая не предназначена для соответствия возможностям вашей конкретной конфигурации оборудования.
источник
Иногда можно избежать нежелательной шпули, когда на месте находятся другие блокирующие операторы, например. Поэтому рекомендуется убедиться, что данные уже отсортированы к моменту достижения этой стадии. (возможно, отсутствующие индексы?)
Если это там для защиты Хэллоуина, то, как сказали другие парни, вы мало что можете сделать.
источник