Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает свойства статистики для указанного объекта базы данных (таблицы или индексированного представления) в текущей базе данных SQL Server. Сведения о секционированных таблицах см. в аналогичных sys.dm_db_incremental_stats_properties.
Синтаксис
sys.dm_db_stats_properties (object_id, stats_id)
Аргументы
object_id
Идентификатор объекта текущей базы данных, для которого запрашиваются статистические свойства. object_id имеет тип int.
stats_id
Идентификатор статистики для указанного аргумента object_id. Идентификатор статистики может быть получен из динамического административного представления sys.stats . stats_id имеет тип int.
Возвращаемая таблица
Имя столбца | Тип данных | Description |
---|---|---|
object_id | int | Идентификатор объекта (таблицы или индексированного представления), для которого возвращаются свойства объекта статистики. |
stats_id | int | Идентификатор объекта статистики. Является уникальным в пределах таблицы или индексированного представления. Дополнительные сведения см. в статье sys.stats (Transact-SQL). |
last_updated | datetime2 | Дата и время последнего обновления объекта статистики. Дополнительные сведения см. в подразделе Примечания на этой странице. |
строк | bigint | Общее число строк в таблице или индексированном представлении при последнем обновлении статистики. Если статистика отфильтрована или соответствует отфильтрованному индексу, количество строк может быть меньше, чем количество строк в таблице. |
rows_sampled | bigint | Общее количество строк, выбранных для статистических вычислений. |
steps | int | Число шагов в гистограмме. Дополнительные сведения см. в разделе DBCC SHOW_STATISTICS (Transact-SQL). |
unfiltered_rows | bigint | Общее количество строк в таблице до применения критерия фильтра (для отфильтрованной статистики). Если статистика не отфильтрована, то unfiltered_rows равно значению, которое возвращается в столбце rows. |
modification_counter | bigint | Общее количество изменений в начальном столбце статистики (на основе которого строится гистограмма) с момента последнего обновления статистики. Оптимизированные для памяти таблицы: начиная с SQL Server 2016 (13.x) и в База данных SQL Azure этот столбец содержит: общее количество изменений для таблицы с момента последнего обновления статистики или перезапуск базы данных. |
persisted_sample_percent | float | Процент материализованной выборки используется для обновлений статистики, где явно не указан процент выборки. Если значение равно нулю, процент материализованной выборки не устанавливается для этой статистики. Применятся к: SQL Server 2016 (13.x) с пакетом обновления SP1 и накопительным обновлением 4 |
Замечания
sys.dm_db_stats_properties возвращает пустой набор строк в любом из следующих условий:
- object_id или stats_id имеет значение NULL.
- Указанный объект не найден или не соответствует таблице или индексированному представлению.
- Указанный идентификатор статистики не соответствует имеющейся статистике для указанного идентификатора объекта статистики.
- Текущий пользователь не имеет разрешений на просмотр объекта статистики.
Это поведение позволяет безопасно использовать sys.dm_db_stats_properties при перекрестном применении к строкам в представлениях, таких как sys.objects и sys.stats.
Дата обновления статистики хранится в большом двоичном объекте статистики вместе с гистограммой и вектором плотности, а не в метаданных. Если данные не считываются для создания статистических данных, большой двоичный объект статистики не создается, дата недоступна, а столбец last_updated имеет значение NULL. Это происходит с отфильтрованной статистикой, для которой предикат не возвращает ни одной строки, или с новыми пустыми таблицами.
Разрешения
Требуется наличие у пользователя разрешения на выбор столбцов статистики либо то, чтобы пользователь был владельцем таблицы или членом предопределенной роли сервера sysadmin
, предопределенной роли базы данных db_owner
или предопределенной роли базы данных db_ddladmin
.
Примеры
А. Простой пример
В следующем примере возвращается статистика для Person.Person
таблицы в базе данных AdventureWorks.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Получение всех статистических свойств таблицы
В следующем примере показано получение всех статистических свойств, имеющихся для таблицы 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
INNER JOIN sys.stats AS 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)
sys.dm_db_incremental_stats_properties (Transact-SQL)
sys.dm_db_stats_histogram (Transact-SQL)