Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
A sys.dm_db_stats_properties função de gestão dinâmica devolve estatísticas para o objeto de base de dados especificado na base de dados atual.
Para tabelas particionadas, veja também a sys.dm_db_incremental_stats_properties semelhante.
Sintaxe
sys.dm_db_stats_properties (object_id, stats_id)
Arguments
object_id
O ID do objeto na base de dados atual.
object_id é inteligência.
stats_id
O ID das estatísticas para o especificado object_id. Podes obter o ID de estatísticas na vista de gestão dinâmica do sys.stats .
stats_id é inteligência.
Tabela retornada
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
object_id |
int | ID do objeto (tabela ou vista indexada). |
stats_id |
int | ID do objeto de estatística. É exclusivo dentro da tabela ou do modo de exibição indexado. Para mais informações, consulte sys.stats (Transact-SQL). |
last_updated |
datetime2 | Data e hora em que o objeto de estatísticas foi atualizado pela última vez. Para obter mais informações, consulte a seção Observações neste artigo. |
rows |
bigint | Número total de linhas na tabela ou na vista indexada quando as estatísticas foram atualizadas pela última vez. Se as estatísticas forem filtradas ou corresponderem a um índice filtrado, o número de linhas poderá ser menor do que o número de linhas na tabela. |
rows_sampled |
bigint | Número total de linhas amostradas para cálculos estatísticos. |
steps |
int | Número de passos no histograma. Para mais informações, consulte o DBCC SHOW_STATISTICS (Transact-SQL). |
unfiltered_rows |
bigint | Número total de linhas na tabela antes de aplicar a expressão do filtro (para estatísticas filtradas). Se as estatísticas não forem filtradas, unfiltered_rows é igual ao valor devolvido na rows coluna. |
modification_counter |
bigint | Número total de modificações para a coluna principal de estatísticas (a coluna sobre a qual o histograma é construído) desde a última atualização das estatísticas. Tabelas otimizadas para memória: a partir do SQL Server 2016 (13.x) e no Base de Dados SQL do Azure esta coluna contém: número total de modificações para a tabela desde a última atualização das estatísticas ou o reinício da base de dados. |
persisted_sample_percent |
float | Porcentagem de amostra persistente usada para atualizações estatísticas que não especificam explicitamente uma porcentagem de amostragem. Se o valor for zero, nenhuma porcentagem de amostra persistente será definida para essa estatística. Aplica-se a: SQL Server 2016 (13.x) SP1 CU4 e versões posteriores |
Observações
A sys.dm_db_stats_properties função devolve um conjunto de linhas vazio sob qualquer uma das seguintes condições:
-
object_idoustats_idéNULL. - O objeto especificado não é encontrado ou não corresponde a uma tabela ou a uma vista indexada.
- O ID de estatísticas especificado não corresponde às estatísticas existentes para o ID do objeto especificado.
- O utilizador atual não tem permissões para visualizar o objeto de estatísticas.
Este comportamento permite o uso seguro de sys.dm_db_stats_properties quando aplicado cruzadamente a linhas em vistas como sys.objects e sys.stats.
A data de atualização das estatísticas é armazenada no objeto de blob de estatísticas juntamente com o de histograma e o vetor de densidade , não nos metadados. Quando nenhum dado é lido para gerar dados estatísticos, o blob de estatísticas não é criado, a data não está disponível e a last_updated coluna é NULL. Esta condição aplica-se a estatísticas filtradas para as quais o predicado não devolve linhas, ou a novas tabelas vazias.
Permissions
Precisas SELECT de permissões nas colunas de estatísticas, ou tens de ser dono da tabela, ou ser membro do sysadmin papel fixo do servidor, do db_owner papel fixo na base de dados, ou do db_ddladmin papel fixo na base de dados.
Examples
A. Exemplo simples
O exemplo seguinte devolve informações sobre as estatísticas da Person.Person tabela na AdventureWorks base de dados.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Devolver todas as propriedades estatísticas para uma tabela
O exemplo seguinte devolve propriedades de todas as estatísticas que existem para a tabela 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. Propriedades de estatísticas de retorno para objetos frequentemente modificados
O exemplo seguinte devolve todas as tabelas, vistas indexadas e estatísticas na base de dados atual para as quais a coluna inicial foi modificada mais de 1.000 vezes desde a última atualização estatística.
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;
Conteúdo relacionado
- DBCC SHOW_STATISTICS (Transact-SQL)
- sys.stats (Transact-SQL)
- Exibições e funções de gerenciamento dinâmico relacionadas a objetos (Transact-SQL)
- Visualizações e funções de gerenciamento dinâmico (Transact-SQL)
- sys.dm_db_incremental_stats_properties (Transact-SQL)
- sys.dm_db_stats_histogram (Transact-SQL)