Partilhar via


sys.dm_db_stats_properties (Transact-SQL)

Retorna propriedades de estatísticas para o objeto de banco de dados especificado (tabela ou exibição indexada) no banco de dados do SQL Server atual.

ObservaçãoObservação

O objeto de gerenciamento dinâmico, sys.dm_db_stats_properties, está disponível no SQL Server 2012, a partir do Service Pack 1, e no SQL Server 2008 R2, a partir do Service Pack 2.

Sintaxe

sys.dm_db_stats_properties (object_id, stats_id)

Argumentos

  • object_id
    É a ID do objeto no banco de dados atual para o qual as propriedades de uma de suas estatísticas é solicitada. object_id é int.

  • stats_id
    É a ID de estatísticas do object_id especificado. A ID de estatísticas pode ser obtida na exibição de gerenciamento dinâmico sys.stats. stats_id é int.

Tabela retornada

Nome da coluna

Tipo de dados

Descrição

object_id

int

ID do objeto (tabela ou exibição indexada) para o qual as propriedades do objeto de estatísticas serão retornadas.

stats_id

int

ID do objeto de estatísticas. É exclusiva na tabela ou exibição indexada. Para obter mais informações, consulte sys.stats (Transact-SQL).

last_updated

datetime2

Data e hora da última atualização do objeto de estatísticas.

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, consulte 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 será igual ao valor retornado na coluna rows.

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.

Comentários

sys.dm_db_stats_properties retorna um conjunto de linhas vazio em qualquer uma das seguintes condições:

  • object_id ou stats_id é NULL.

  • O objeto especificado não foi encontrado ou não corresponde a uma tabela ou exibição indexada.

  • A ID de estatísticas especificada não corresponde às estatísticas existentes para a ID de objeto especificada.

  • O usuário atual não tem permissões para exibir o objeto de estatísticas.

Esse comportamento permite o uso seguro de sys.dm_db_stats_properties quando aplicado a linhas em exibições como sys.objects e sys.stats.

Permissões

Requer que o usuário tenha permissões selecionadas em colunas de estatísticas, que ele possua a tabela ou que seja membro da função de servidor fixa sysadmin, da função de banco de dados fixa db_owner ou da função de banco de dados fixa db_ddladmin.

Exemplos

A.Retornando todas as propriedades de estatísticas para uma tabela

O exemplo a seguir retorna propriedades de todas as estatísticas que existem para a tabela 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');

B.Retornando propriedades de estatísticas para objetos modificados com frequência

O exemplo a seguir retorna todas as tabelas, exibições indexadas e estatísticas do banco de dados atual para o qual a coluna principal foi modificada mais de 1000 vezes desde a última atualização de estatísticas.

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;

Consulte também

Referência

DBCC SHOW_STATISTICS (Transact-SQL)

sys.stats (Transact-SQL)

Funções e exibições de gerenciamento dinâmico relacionadas ao objeto (Transact-SQL)

Exibições e funções de gerenciamento dinâmico (Transact-SQL)