Como atualizar as estatísticas SQL Server

Como atualizar as estatísticas SQL Server
Este artigo entenderá o básico das estatísticas do SQL Server e vários métodos para executar uma atualização de estatísticas.

Quais são as estatísticas do SQL Server?

As estatísticas do SQL Server são grandes objetos binários usados ​​para manter informações estatísticas sobre a distribuição de valores em colunas de tabela.

O SQL Server Query Optimizer usa as estatísticas para determinar para criar uma cardinalidade estimada. O valor da cardinalidade é então usado para criar um plano de execução otimizado e de alta qualidade.

Cardinalidade refere -se ao número de linhas.

Portanto, é importante manter as estatísticas do SQL Server atualizadas, pois os resultados estatísticos incorretos podem levar a um plano de consulta caro e alto uso de recursos. Um plano de execução ruim do otimizador de consulta pode levar a problemas, como bloqueio e deadlocks.

O que é plano de execução do SQL Server?

Um plano de execução ou um plano de consulta refere -se a uma série de etapas organizadas para consultar e acessar dados em um banco de dados. O otimizador de consulta gerará uma representação gráfica do método de alto otimizado para buscar dados para a consulta especificada.

Veja as estatísticas do servidor SQL

No SQL Server, você pode usar o SQL Server Management Studio ou a consulta T-SQL para visualizar as estatísticas de um objeto específico.

No SSMS, navegue para bancos de dados -> seu banco de dados de destino -> tabelas -> Tabela de destino -> Estatísticas.

Como mostrado:

Para visualizar os detalhes de um objeto estatístico específico, clique com o botão direito do mouse e selecione a opção de propriedades. Você pode ver a última vez que as estatísticas para as colunas foram atualizadas como:

Para visualizar a distribuição e a frequência do histograma, use a guia Detalhes na janela Propriedades.

SQL Server View Statistics: Transact-SQL

Você também pode ver os detalhes de uma estatística usando uma consulta T-SQL. Considere a consulta de exemplo mostrada abaixo:

use salesdb;
Selecione
Estatísticas.nome,
STATS_PROPERTIES.Ultima atualização,
STATS_PROPERTIES.linhas,
STATS_PROPERTIES.linhas_sampled,
STATS_PROPERTIES.UNFLTERED_ROWS,
STATS_PROPERTIES.modificação_counter,
STATS_PROPERTIES.passos
de sys.estatísticas como estatísticas
Sistema de aplicação externa.DM_DB_STATS_PROPERTIES (STATS.object_id, estatísticas.stats_id) como stats_properties
onde object_name (estatísticas.object_id) = 'clientes'
Ordem por last_updated desc;

A consulta acima deve retornar um exemplo de resultado como:

O SQL Server também fornece o comando dbcc para mostrar os detalhes de uma estatística específica. Exemplo:

DBCC Show_Statistics ('clientes', 'CustomerPK');

A consulta acima leva dois parâmetros: nome da tabela e estatísticas de destino, respectivamente.

Estatísticas de atualização do servidor SQL

Existem várias maneiras de atualizar as estatísticas no SQL Server. Para ativar a atualização de estatísticas automáticas, clique com o botão direito do mouse no banco de dados de destino, navegue na guia Opções e defina as “estatísticas de atualização automática” como true na guia Automatic.

Para atualizar as estatísticas manualmente usando a consulta T-SQL, use a consulta como mostrado:

Atualizar estatísticas DBO.Clientes;

Onde dbo.Os clientes representam a tabela de destino.

Você também pode usar o comando Atualizar estatísticas como:

EXEC SP_UPDATESTATS;

A saída é como:

Conclusão

Este guia abrange como trabalhar com as estatísticas do SQL Server e vários métodos para executar atualizações de estatísticas no SSMS e T-SQL.