sys.dm_db_stats_properties (Transact-SQL)

Возвращает статистические свойства указанного объекта базы данных (таблицы или индексированного представления) из текущей базы данных SQL Server.

ПримечаниеПримечание

Объект DMO sys.dm_db_stats_properties имеется в SQL Server 2012, начиная с пакета обновления 1 (SP1), и в SQL Server 2008 R2, начиная с пакета обновления 2 (SP2).

Синтаксис

sys.dm_db_stats_properties (object_id, stats_id)

Аргументы

  • object_id
    Идентификатор объекта текущей базы данных, для которого запрашиваются статистические свойства. Аргумент object_id имеет тип int.

  • stats_id
    Идентификатор статистики для указанного аргумента object_id. Идентификатор статистики может быть получен из динамического административного представления sys.stats. Аргумент stats_id имеет тип int.

Возвращаемая таблица

Имя столбца

Тип данных

Описание

object_id

int

Идентификатор объекта (таблицы или индексированного представления), для которого возвращаются свойства объекта статистики.

stats_id

int

Идентификатор объекта статистики. Является уникальным в пределах таблицы или индексированного представления. Дополнительные сведения см. в разделе sys.stats (Transact-SQL).

last_updated

datetime2

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

rows

bigint

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

rows_sampled

bigint

Общее количество строк, выбранных для статистических вычислений.

steps

int

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

unfiltered_rows

bigint

Общее количество строк в таблице до применения критерия фильтра (для отфильтрованной статистики). Если статистика не отфильтрована, то unfiltered_rows равно значению, которое возвращается в столбце rows.

modification_counter

bigint

Общее количество изменений в начальном столбце статистики (на основе которого строится гистограмма) с момента последнего обновления статистики.

Замечания

При наличии одного из следующих условий представление sys.dm_db_stats_properties возвращает пустой набор строк.

  • object_id или stats_id равно NULL.

  • Указанный объект не найден или не соответствует таблице или индексированному представлению.

  • Указанный идентификатор статистики не соответствует имеющейся статистике для указанного идентификатора объекта статистики.

  • Текущий пользователь не имеет разрешений на просмотр объекта статистики.

Это поведение позволяет безопасно использовать представление sys.dm_db_stats_properties при перекрестном применении к строкам в таких представлениях, как sys.objects и sys.stats.

Разрешения

Требуется наличие у пользователя разрешения на выбор столбцов статистики либо то, чтобы пользователь был владельцем таблицы или членом предопределенной роли сервера sysadmin, предопределенной роли базы данных db_owner или предопределенной роли базы данных db_ddladmin.

Примеры

А.Получение всех статистических свойств таблицы

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

SELECT
    sp.stats_id, name, filter_definition, last_updated, rows, rows_sampled, steps, unfiltered_rows, modification_counter 
FROM sys.stats AS stat 
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE stat.object_id = object_id('TEST');

Б.Получение статистических свойств часто изменяемых объектов.

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

SELECT 
    obj.name, obj.object_id, stat.name, stat.stats_id, last_updated, modification_counter
FROM sys.objects AS obj 
JOIN sys.stats stat ON stat.object_id = obj.object_id
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE modification_counter > 1000;

См. также

Справочник

Инструкция DBCC SHOW_STATISTICS (Transact-SQL)

sys.stats (Transact-SQL)

Динамические административные представления и функции, связанные с объектом (Transact-SQL)

Динамические административные представления и функции (Transact-SQL)