ДТА рекомендует СОЗДАТЬ СТАТИСТИКУ

10

Я только что выполнил запрос T-SQL через DTA, и одна из рекомендаций - СОЗДАТЬ СТАТИСТИКУ на одном из столбцов, который является частью многих запросов в файле кода SQL.

Мой вопрос, как именно статистика помогает в производительности?


источник

Ответы:

7

статистика используется при создании плана выполнения запроса.

Статистика для оптимизации запросов - это объекты, которые содержат статистическую информацию о распределении значений в одном или нескольких столбцах таблицы или индексированного представления. Оптимизатор запросов использует эту статистику для оценки количества элементов или количества строк в результате запроса. Эти оценки количества элементов позволяют оптимизатору запросов создавать высококачественный план запросов. Например, оптимизатор запросов может использовать оценки количества элементов для выбора оператора поиска по индексу вместо более ресурсоемкого оператора сканирования индекса, что повышает производительность запросов.

См. Http://msdn.microsoft.com/en-us/library/ms190397.aspx для получения дополнительной информации.

Alex_L
источник
1
отличная ссылка и описание. Всегда ли полезно создавать статистику по часто запрашиваемым таблицам?
Томас Стрингер
да, мы должны быть уверены, что статистика для самых читаемых таблиц всегда адекватна. Если ваша таблица интенсивна для записи, возможно, вам нужно обновлять статистику, например, каждую ночь.
Alex_L
2
@ Surfer513 - будьте осторожны: создание статистики может иметь пагубные последствия. Чем лучше информация, которую вы предоставляете планировщику, может заставить его выбрать другой путь выполнения, и, поскольку это игра вероятностей, вполне возможно, что этот путь будет медленнее (даже если в целом он будет быстрее). Другими словами, в производственной базе данных протестируйте перед внедрением.
Джек говорит, попробуйте topanswers.xyz
7

Если DTA рекомендует использовать статистику по одному столбцу, необходимо автоматически отключить создание статистики? Автоматическое создание автоматически создает статистику по любому столбцу, используемому в предикате, поэтому обычно рекомендуется оставлять его включенным. Проверьте состояние автоматического обновления для этой базы данных, которое обычно должно быть включено.

Одно из лучших применений DTA - это определение недостающей многостолбцовой статистики, которую не создаст автоматическое создание. Но для одной колонки, автоматическое создание должно заботиться о них за вас.

Марк Стори-Смит
источник