Просмотр свойств статистики

Статистику оптимизации текущего запроса для таблицы или индексированного представления можно просмотреть в SQL Server 2012 с помощью среды Среда SQL Server Management Studio или Transact-SQL. Объекты статистики включают заголовок, содержащий метаданные о статистике, гистограмму, содержащую распределение значений в первом ключевом столбце объекта статистики, и вектор плотностей для измерения корреляции с охватом нескольких столбцов. Дополнительные сведения о гистограммах и векторах плотностей см. в разделе Инструкция DBCC SHOW_STATISTICS (Transact-SQL).

В этом разделе

  • Перед началом работы выполните следующие действия.

    Безопасность

  • Для просмотра свойств статистики используются:

    Среда SQL Server Management Studio

    Transact-SQL

Перед началом

Безопасность

Разрешения

Чтобы просматривать объект статистики, пользователь должен быть владельцем таблицы или членом предопределенной роли сервера sysadmin, предопределенной роли базы данных db_owner или предопределенной роли базы данных db_ddladmin.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование среды SQL Server Management Studio

Просмотр свойств статистики

  1. В обозревателе объектов щелкните значок «плюс», чтобы развернуть базу данных, в которой нужно создать новую статистику.

  2. Чтобы развернуть папку Таблицы, щелкните значок «плюс».

  3. Щелкните значок «плюс», чтобы развернуть таблицу, в которой нужно просмотреть свойства статистики.

  4. Щелкните значок «плюс», чтобы развернуть папку Статистика.

  5. Щелкните правой кнопкой мыши объект статистики, для которого нужно просмотреть свойства, и выберите команду Свойства.

  6. В диалоговом окне Свойства статистики — statistics_name на панели Выбор страницы выберите Сведения.

    На странице Сведения в диалоговом окне Свойства статистики — statistics_name отображаются следующие свойства.

    • Имя таблицы
      Отображает имя таблицы, которую описывает данная статистика.

    • Имя статистики
      Отображает имя объекта базы данных, в котором сохранена статистика.

    • Статистика для INDEXимя_статистики
      В этом текстовом поле отображаются свойства, возвращенные из объекта статистики. Эти свойства делятся на три части: заголовок статистики, вектор плотностей и гистограмма.

    Следующие данные описывают столбцы, возвращенные в результирующем наборе для заголовка статистики.

    • Название
      Имя объекта статистики.

    • Обновлен
      Дата и время последнего обновления статистики.

    • Строки
      Общее число строк в таблице или индексированном представлении при последнем обновлении статистики. Если статистика отфильтрована или соответствует отфильтрованному индексу, количество строк может быть меньше, чем количество строк в таблице.

    • Rows Sampled
      Общее количество строк, выбранных для статистических вычислений. Если имеет место условие «количество строк выборки < количество строк таблицы», то отображаемые результаты определения гистограммы и вычисления плотности представляют собой оценки, основанные на строках выборки.

    • Steps
      Число шагов в гистограмме. Каждый шаг охватывает диапазон значений столбцов, за которым следует значение столбца, представляющее собой верхнюю границу. Шаги гистограммы определяются в первом ключевом столбце статистики. Максимальное число шагов — 200.

    • Плотность
      Вычисляется как 1/distinct values для всех значений в первом ключевом столбце объекта статистики после исключения граничных значений гистограммы. Это значение плотности не используется оптимизатором запросов и отображается для обратной совместимости с версиями, предшествующими SQL Server 2008.

    • Средняя длина ключа
      Среднее число байтов на значение для всех ключевых столбцов в объекте статистики.

    • String Index
      Значение «Да» указывает, что объект статистики содержит сводную строковую статистику, позволяющую уточнить оценку количества элементов для предикатов запроса, использующих оператор LIKE, например WHERE ProductName LIKE '%Bike'. Сводная строковая статистика хранится отдельно от гистограммы и создается в первом ключевом столбце объекта статистики, если он имеет тип char, varchar, nchar, nvarchar, varchar(max), nvarchar(max), text или ntext.

    • Критерий фильтра
      Предикат для подмножества строк таблицы, включенных в объект статистики. NULL — неотфильтрованная статистика.

    • Unfiltered Rows
      Общее количество строк в таблице перед применением критерия фильтра. Если Filter Expression имеет значение NULL, то столбец Unfiltered Rows совпадает со столбцом Rows.

    Следующие данные описывают столбцы, возвращенные в результирующем наборе для вектора плотностей.

    • Общая плотность
      Density составляет 1 / distinct values. В результатах отображаются плотности для каждого префикса столбцов объекта статистики, по одной строке на плотность. Различающееся значение — это отдельный список значений столбцов на строку и на префикс столбцов. Например, если объект статистики содержит ключевые столбцы (A, B, C), то в результатах приводится плотность отдельных списков значений в каждом из следующих префиксов столбцов: (A), (A, B) и (A, B, C). При использовании префикса (A, B, C) каждый из этих списков является отдельным списком значений: (3, 5, 6), (4, 4, 6), (4, 5, 6), (4, 5, 7). При использовании префикса (A, B) одинаковые значения столбцов имеют следующие отдельные списки значений: (3, 5), (4, 4) и (4, 5).

    • Средняя длина
      Средняя длина (в байтах) для хранения списка значений столбца для данного префикса столбца. Если каждому значению в списке (3, 5, 6), например, требуется по 4 байта, то длина составляет 12 байт.

    • Columns
      Имена столбцов в префиксе, для которых отображаются значения «Общая плотность» и «Средняя длина».

    Следующие данные описывают столбцы, возвращенные в результирующем наборе для гистограммы.

    • RANGE_HI_KEY
      Верхнее граничное значение столбца для шага гистограммы. Это значение столбца называется также ключевым значением.

    • RANGE_ROWS
      Предполагаемое количество строк, значение столбцов которых находится в пределах шага гистограммы, исключая верхнюю границу.

    • EQ_ROWS
      Предполагаемое количество строк, значение столбцов которых равно верхней границе шага гистограммы.

    • DISTINCT_RANGE_ROWS
      Предполагаемое количество строк с различающимся значением столбца в пределах шага гистограммы, исключая верхнюю границу.

    • AVG_RANGE_ROWS
      Среднее количество строк с повторяющимися значениями столбцов в пределах шага гистограммы, исключая верхнюю границу (RANGE_ROWS/DISTINCT_RANGE_ROWS для DISTINCT_RANGE_ROWS > 0).

  7. Нажмите кнопку ОК.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование Transact-SQL

Просмотр свойств статистики

  1. В обозревателе объектов установите соединение с экземпляром компонента Компонент Database Engine.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.

    USE AdventureWorks2012;
    GO
    -- The following example displays all statistics information for the AK_Address_rowguid index of the Person.Address table. 
    DBCC SHOW_STATISTICS ("Person.Address", AK_Address_rowguid); 
    GO
    

Дополнительные сведения см. в разделе Инструкция DBCC SHOW_STATISTICS (Transact-SQL).

Поиск всех статистических данных по таблице или представлению

  1. В обозревателе объектов установите соединение с экземпляром компонента Компонент Database Engine.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.

    USE AdventureWorks2012; 
    GO
    /*Gets the following information: name and ID of the statistics, whether the statistics were created automatically or by the user, whether the statistics were created with the NORECOMPUTE option, and whether the statistics have a filter and, if so, what that filter is.
    */
    SELECT name AS statistics_name
        ,stats_id
        ,auto_created
        ,user_created
        ,no_recompute
        ,has_filter
        ,filter_definition
    -- using the sys.stats catalog view
    FROM sys.stats
    -- for the Sales.SpecialOffer table
    WHERE object_id = OBJECT_ID('Sales.SpecialOffer');
    GO
    

Дополнительные сведения см. в разделе sys.stats (Transact-SQL).

Значок стрелки, используемый со ссылкой «В начало»[Top]