Статистика SQL Server и оценка кардинальности
Оптимизатор выбирает соединения, доступ и память по оценочному числу строк. Если оценка далека от факта, разумный план становится дорогим.
Статистика SQL Server и оценка кардинальности
Оптимизатор выбирает соединения, доступ и память по оценочному числу строк. Если оценка далека от факта, разумный план становится дорогим.
Что измерять
Сравнивайте оценочные и фактические строки на первом значимом операторе. Проверяйте гистограмму, счетчики изменений, выборку, растущие ключи, коррелированные предикаты и выражения над столбцами.
Практический подход
Оставьте автоматическую статистику включенной, обновляйте важную статистику после существенных изменений, применяйте фильтрованную или многоколоночную статистику для конкретных перекосов и переписывайте непрозрачные предикаты.
Чего следует избегать
Не запускайте FULLSCAN для всей статистики каждую ночь, не считайте, что rebuild обновляет все, и не скрывайте каждую ошибку подсказкой.
Эксплуатационный результат
Обслуживание статистики должно зависеть от изменения данных и чувствительности нагрузки, а не от общего календаря.
Проверка перед production
Зафиксируйте исходные показатели и определите ожидаемое улучшение. Проверьте решение на репрезентативных данных и при реальной параллельной нагрузке. Сохраните исходную настройку или план, подготовьте откат и наблюдайте следующий обычный пик нагрузки.
Чтобы применить этот подход к конкретной среде SQL Server, используйте форму ниже и укажите версию SQL Server, размер базы, профиль нагрузки и уже собранные данные.