Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
База данных SQL в Microsoft Fabric
sys.dm_db_stats_properties Динамическая функция управления возвращает статистику для указанного объекта базы данных в текущей базе данных.
Для разделённых таблиц см. аналогичную sys.dm_db_incremental_stats_properties.
Syntax
sys.dm_db_stats_properties (object_id, stats_id)
Аргументы
object_id
ID объекта в текущей базе данных.
object_id
Это интеллект.
stats_id
ID статистики для указанного object_id. Статистический идентификатор можно получить из динамического управления sys.stats .
stats_id
Это интеллект.
Таблица возвращена
| Название столбца | Тип данных | Описание |
|---|---|---|
object_id |
int | ID объекта (таблица или индексированный вид). |
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 | Общее количество изменений в начальном столбце статистики (на основе которого строится гистограмма) с момента последнего обновления статистики. Оптимизированные для памяти таблицы: начиная с SQL Server 2016 (13.x) и в База данных SQL Azure этот столбец содержит: общее количество изменений для таблицы с момента последнего обновления статистики или перезапуск базы данных. |
persisted_sample_percent |
float | Сохраненный процент выборки, используемый для статистических обновлений, которые явно не указывают процент выборки. Если значение равно нулю, процент материализованной выборки не устанавливается для этой статистики. Применимо к: SQL Server 2016 (13.x) SP1 CU4 и более поздним версиям |
Замечания
sys.dm_db_stats_properties Функция возвращает пустой набор строк при любом из следующих условий:
-
object_idилиstats_idестьNULL. - Указанный объект не находится или не соответствует таблице или индексированному представлению.
- Указанный статистический идентификатор не соответствует существующей статистике для указанного идентификатора объекта.
- Текущий пользователь не имеет прав на просмотр объекта статистики.
Это поведение позволяет безопасно использовать при sys.dm_db_stats_properties кросс-приложении к строкам в таких видах sys.objects , как и sys.stats.
Дата обновления статистики хранится в большом двоичном объекте статистики вместе с гистограммой и вектором плотности, а не в метаданных. Если данные не считываются для создания статистических данных, большой двоичный объект статистики не создается, дата недоступна и last_updated столбец NULL. Это условие применяется к отфильтрованным статистикам, для которых предикат не возвращает строки, или к новым пустым таблицам.
Permissions
Вам нужны SELECT права на статистические столбцы, или вы должны владеть таблицой, или быть членом sysadmin роли фиксированного сервера, db_owner роли фиксированной базы данных или роли db_ddladmin фиксированной базы данных.
Examples
А. Простой пример
Следующий пример возвращает информацию о статистике таблицы Person.Person в AdventureWorks базе данных.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Вернуть все статистические свойства таблицы
Следующий пример возвращает свойства всех статистик, существующих для таблицы Sales.SalesOrderDetail.
SELECT
OBJECT_SCHEMA_NAME(stat.object_id) AS schema_name,
OBJECT_NAME(stat.object_id) AS table_name,
sp.stats_id,
stat.[name],
stat.filter_definition,
sp.last_updated,
sp.[rows],
sp.rows_sampled,
sp.steps,
sp.unfiltered_rows,
sp.modification_counter
FROM sys.stats AS stat
OUTER APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE stat.object_id = OBJECT_ID(N'Sales.SalesOrderDetail')
C. Свойства статистики возврата для часто изменяемых объектов
Следующий пример возвращает все таблицы, индексированные представления и статистику в текущей базе данных, для которой ведущий столбец был изменён более 1000 раз с момента последнего обновления статистики.
SELECT
OBJECT_SCHEMA_NAME(obj.[object_id]) AS schema_name,
obj.[name],
stat.[name],
stat.stats_id,
sp.last_updated,
sp.modification_counter
FROM sys.objects AS obj
INNER JOIN sys.stats AS stat ON stat.object_id = obj.object_id
OUTER APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE sp.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)