Эксплуатация SQL Server

Временные таблицы и табличные переменные в SQL Server

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

Временные таблицы и табличные переменные в SQL Server

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

Что измерять

Измеряйте фактические строки, оценки, выбор join, spills, recompilations и повторный доступ. Deferred compilation помогает в части случаев, но не делает структуры взаимозаменяемыми.

Практический подход

Используйте временные таблицы для больших или изменчивых наборов, добавляйте только полезные индексы, выбирайте переменные для малых простых наборов и тестируйте на production-масштабе.

Чего следует избегать

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

Эксплуатационный результат

Выбирайте структуру, которая дает оптимизатору достаточно информации при разумной стоимости промежуточной работы.

Проверка перед production

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

Чтобы применить этот подход к конкретной среде SQL Server, используйте форму ниже и укажите версию SQL Server, размер базы, профиль нагрузки и уже собранные данные.

Вопрос по статье

Есть вопрос по этой теме?

Расскажите, что вы оцениваете или с какой проблемой столкнулись. Мы ответим с практической рекомендацией.

Inquiries are not enabled in this preview.

Задать вопрос по этой статье