Как вы уже знаете из предыдущих разделов, Database Engine создает статистические данные для каждого существующего индекса. Система также может создавать статистические данные и для неиндексированных столбцов. Эти статистические данные называются статистическими данными столбца. Вместе со статистическими данными индекса статистические данные столбца используются для оптимизации плана выполнения запроса.
Database Engine создает статистические данные даже для неиндексированного столбца, который является частью условия в предложении where.
Существует несколько ситуаций, при которых наличие статистических данных столбца может помочь оптимизатору принять правильное решение. Одной из них является ситуация, когда у вас есть составной индекс из двух или более столбцов. Как вы уже знаете, для такого индекса система генерирует статистические данные только для первого столбца индекса. Существование статистических данных столбца для второго столбца (и для всех других столбцов) составного индекса может помочь оптимизатору выбрать оптимальный план выполнения.
Database Engine поддерживает два представления просмотра каталогов, используемых для статистических данных столбца (эти представления также могут быть использованы для редактирования информации, связанной со статистическими данными индекса):
♦ sys.stats;
♦ sys.stats_columns.
Представление sys.stats содержит одну строку для каждого статистического данного таблицы или представления. Помимо столбца name, который задает имя статистических данных, это представление имеет, помимо прочих, два других столбца:
♦ auto_created - статистические данные созданы оптимизатором запросов;
♦ usercreated - статистические данные явно созданы пользователем.
Представление sys.statscoiumns содержит дополнительную информацию относительно столбцов, которые являются частью представления sys.stats. (Для определения этой дополнительной информации вы должны выполнить соединение этих двух представлений.)