sys.dm_db_stats_properties (Transact-SQL)sys.dm_db_stats_properties (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Retorna propriedades de estatísticas para o objeto de banco de dados especificado (tabela ou exibição indexada) no banco de dados do SQL ServerSQL Server atual.Returns properties of statistics for the specified database object (table or indexed view) in the current SQL ServerSQL Server database. Para tabelas particionadas, consulte o semelhante DM db_incremental_stats_properties.For partitioned tables, see the similar sys.dm_db_incremental_stats_properties.

SintaxeSyntax

sys.dm_db_stats_properties (object_id, stats_id)  

ArgumentosArguments

object_idobject_id
É a ID do objeto no banco de dados atual para o qual as propriedades de uma de suas estatísticas é solicitada.Is the ID of the object in the current database for which properties of one of its statistics is requested. object_id é int.object_id is int.

stats_idstats_id
É a ID de estatísticas do object_idespecificado.Is the ID of statistics for the specified object_id. A ID de estatísticas pode ser obtida na exibição de gerenciamento dinâmico sys.stats .The statistics ID can be obtained from the sys.stats dynamic management view. stats_id é int.stats_id is int.

Tabela retornadaTable Returned

Nome da colunaColumn name Tipo de dadosData type DescriçãoDescription
object_idobject_id intint ID do objeto (tabela ou exibição indexada) para o qual as propriedades do objeto de estatísticas serão retornadas.ID of the object (table or indexed view) for which to return the properties of the statistics object.
stats_idstats_id intint ID do objeto de estatísticas.ID of the statistics object. É exclusiva na tabela ou exibição indexada.Is unique within the table or indexed view. Para obter mais informações, veja sys.stats (Transact-SQL).For more information, see sys.stats (Transact-SQL).
last_updatedlast_updated datetime2datetime2 Data e hora da última atualização do objeto de estatísticas.Date and time the statistics object was last updated. Para obter mais informações, consulte a seção de Comentários nesta página.For more information, see the Remarks section in this page.
rowsrows bigintbigint O número total de linhas da tabela ou exibição indexada na última atualização das estatísticas.Total number of rows in the table or indexed view when statistics were last updated. 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.If the statistics are filtered or correspond to a filtered index, the number of rows might be less than the number of rows in the table.
rows_sampledrows_sampled bigintbigint O número total de linhas amostradas para cálculos de estatísticas.Total number of rows sampled for statistics calculations.
etapassteps intint O número de etapas no histograma.Number of steps in the histogram. Para obter mais informações, veja DBCC SHOW_STATISTICS (Transact-SQL).For more information, see DBCC SHOW_STATISTICS (Transact-SQL).
unfiltered_rowsunfiltered_rows bigintbigint O número total de linhas da tabela antes da aplicação da expressão de filtro (para estatísticas filtradas).Total number of rows in the table before applying the filter expression (for filtered statistics). Se as estatísticas não forem filtradas, unfiltered_rows será igual ao valor retornado na coluna de linhas.If statistics are not filtered, unfiltered_rows is equal to the value returns in the rows column.
modification_countermodification_counter bigintbigint 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.Total number of modifications for the leading statistics column (the column on which the histogram is built) since the last time statistics were updated.

Tabelas com otimização de memória: iniciando SQL Server 2016 (13.x)SQL Server 2016 (13.x) e, em Banco de dados SQL do AzureAzure SQL Database esta coluna contém: número total de modificações para a tabela, pois as estatísticas da última vez foram atualizadas ou o banco de dados foi reiniciado.Memory-optimized tables: starting SQL Server 2016 (13.x)SQL Server 2016 (13.x) and in Banco de dados SQL do AzureAzure SQL Database this column contains: total number of modifications for the table since the last time statistics were updated or the database was restarted.
persisted_sample_percentpersisted_sample_percent floatfloat Percentual de amostra persistente usado para as atualizações de estatísticas que não especifica explicitamente um percentual de amostragem.Persisted sample percentage used for statistic updates that do not explicitly specify a sampling percentage. Se o valor for zero, nenhum percentual de amostra persistente será definido para essa estatística.If value is zero, then no persisted sample percentage is set for this statistic.

Aplica-se a: SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 CU4Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 CU4

ComentáriosRemarks

DM db_stats_properties retorna um conjunto de linhas vazio em qualquer uma das seguintes condições:sys.dm_db_stats_properties returns an empty rowset under any of the following conditions:

  • object_id ou stats_id é NULL.object_id or stats_id is NULL.
  • O objeto especificado não foi encontrado ou não corresponde a uma tabela ou exibição indexada.The specified object is not found or does not correspond to a table or indexed view.
  • A ID de estatísticas especificada não corresponde às estatísticas existentes para a ID de objeto especificada.The specified statistics ID does not correspond to existing statistics for the specified object ID.
  • O usuário atual não tem permissões para exibir o objeto de estatísticas.The current user does not have permissions to view the statistics object.

Esse comportamento permite o uso seguro de DM db_stats_properties quando aplicado a linhas em exibições, como sys. Objects e sys. Stats.This behavior allows for the safe usage of sys.dm_db_stats_properties when cross applied to rows in views such as sys.objects and 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.Statistics update date is stored in the statistics blob object together with the histogram and density vector, not in the metadata. Quando nenhum dado é lido para gerar dados de estatísticas, o blob de estatísticas não é criado, a data não estiver disponível e o last_updated coluna será NULL.When no data is read to generate statistics data, the statistics blob is not created, the date is not available, and the last_updated column is NULL. Esse é o caso para estatísticas filtradas para as quais o predicado não retorna nenhuma linha ou para novas tabelas vazias.This is the case for filtered statistics for which the predicate does not return any rows, or for new empty tables.

PermissõesPermissions

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.Requires that the user has select permissions on statistics columns or the user owns the table or the user is a member of the sysadmin fixed server role, the db_owner fixed database role, or the db_ddladmin fixed database role.

ExemplosExamples

A.A. Exemplo simplesSimple example

O exemplo a seguir retorna as estatísticas para o Person.Person tabela no banco de dados AdventureWorks.The following example returns the statistics for the Person.Person table in the AdventureWorks database.

SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);

B.B. Retornando todas as propriedades de estatísticas para uma tabelaReturning all statistics properties for a table

O exemplo a seguir retorna propriedades de todas as estatísticas que existem para a tabela TEST.The following example returns properties of all statistics that exist for the table 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');  

C.C. Retornando propriedades de estatísticas para objetos modificados com frequênciaReturning statistics properties for frequently modified objects

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.The following example returns all tables, indexed views, and statistics in the current database for which the leading column was modified more than 1000 times since the last statistics update.

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;  

Consulte tambémSee Also

DBCC SHOW_STATISTICS (Transact-SQL) DBCC SHOW_STATISTICS (Transact-SQL)
sys.stats (Transact-SQL) sys.stats (Transact-SQL)
Funções e exibições de gerenciamento dinâmico relacionadas ao objeto (Transact-SQL) Object Related Dynamic Management Views and Functions (Transact-SQL)
Exibições e funções de gerenciamento dinâmico (Transact-SQL)Dynamic Management Views and Functions (Transact-SQL)
sys.dm_db_incremental_stats_properties (Transact-SQL)sys.dm_db_incremental_stats_properties (Transact-SQL)
sys.dm_db_stats_histogram (Transact-SQL)sys.dm_db_stats_histogram (Transact-SQL)