Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric
A sys.dm_db_stats_properties função de gerenciamento dinâmico retorna estatísticas para o objeto de banco de dados especificado no banco de dados atual.
Para tabelas particionadas, veja também o sys.dm_db_incremental_stats_properties semelhante.
Sintaxe
sys.dm_db_stats_properties (object_id, stats_id)
Argumentos
object_id
O ID do objeto no banco de dados atual.
object_id é int.
stats_id
O ID das estatísticas para o especificado object_id. Você pode obter o ID de estatísticas na visualização dinâmica de gerenciamento do sys.stats .
stats_id é int.
Tabela retornada
| Nome da coluna | Tipo de dados | Descrição |
|---|---|---|
object_id |
int | ID do objeto (tabela ou visualização indexada). |
stats_id |
int | ID do objeto de estatísticas. É exclusiva na tabela ou exibição indexada. Para obter mais informações, veja sys.stats (Transact-SQL). |
last_updated |
datetime2 | Data e hora da última atualização do objeto de estatísticas. Para obter mais informações, consulte a seção Comentários neste artigo. |
rows |
bigint | O número total de linhas da tabela ou exibição indexada na última atualização das estatísticas. Se as estatísticas forem filtradas ou corresponderem a um índice filtrado, o número de linhas talvez seja menor do que o número de linhas na tabela. |
rows_sampled |
bigint | O número total de linhas amostradas para cálculos de estatísticas. |
steps |
int | O número de etapas no histograma. Para obter mais informações, veja DBCC SHOW_STATISTICS (Transact-SQL). |
unfiltered_rows |
bigint | O número total de linhas da tabela antes da aplicação da expressão de filtro (para estatísticas filtradas). Se as estatísticas não forem filtradas, unfiltered_rows é igual ao valor retornado na rows coluna. |
modification_counter |
bigint | Número total de modificações da coluna de estatísticas principal (a coluna em que o histograma é criado) desde que as últimas estatísticas de tempo foram atualizadas. Tabelas com otimização de memória: a partir do SQL Server 2016 (13.x) e no Banco de Dados SQL do Azure, esta coluna contém: número total de modificações para a tabela desde a última vez que as estatísticas foram atualizadas ou o banco de dados foi reiniciado. |
persisted_sample_percent |
float | Percentual de amostra persistente usado para as atualizações de estatísticas que não especifica explicitamente um percentual de amostragem. Se o valor for zero, nenhum percentual de amostra persistente será definido para essa estatística. Aplica-se a: SQL Server 2016 (13.x) SP1 CU4 e versões posteriores |
Comentários
A sys.dm_db_stats_properties função retorna 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 visualização indexada.
- O ID de estatística especificado não corresponde às estatísticas existentes para o ID do objeto especificado.
- O usuário atual não tem permissões para visualizar o objeto de estatísticas.
Esse 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 de estatísticas é armazenada no objeto de blob de estatísticas, junto com o histograma e o vetor de densidade, não nos metadados. Quando nenhum dado é lido para gerar dados de estatísticas, o blob de estatísticas não é criado, a data não está disponível e a last_updated coluna é NULL. Essa condição se aplica a estatísticas filtradas para as quais o predicado não retorna linhas, ou a novas tabelas vazias.
Permissões
Você precisa SELECT de permissões nas colunas de estatísticas, ou precisa ser dono da tabela, ou ser membro do sysadmin papel fixo de servidor, do db_owner papel fixo de banco de dados ou db_ddladmin do papel fixo de banco de dados.
Exemplos
a. Exemplo simples
O exemplo a seguir retorna informações sobre as estatísticas da Person.Person tabela no AdventureWorks banco de dados.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Devolva todas as propriedades estatísticas de uma tabela
O exemplo a seguir retorna 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 a seguir retorna todas as tabelas, visualizações indexadas e estatísticas no banco 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)
- Funções e exibições de gerenciamento dinâmico relacionadas a objetos (Transact-SQL)
- Exibiçõ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)