terça-feira, 26 de setembro de 2023

SQL SERVER 2014 – Estatísticas incrementais



SQL SERVER – Noções básicas sobre estatísticas incrementais

As estatísticas são essenciais para que o otimizador de consultas do SQL Server gere planos de execução eficientes. Estatísticas desatualizadas podem levar a um desempenho insatisfatório da consulta. Tradicionalmente, as estatísticas são atualizadas automaticamente ou reconstruídas manualmente usando verificações completas, o que pode consumir muitos recursos para tabelas grandes. O SQL Server 2014 introduziu um novo recurso chamado estatísticas incrementais para fornecer gerenciamento de estatísticas mais eficiente.

O que são estatísticas incrementais?

Com as estatísticas incrementais habilitadas, o SQL Server rastreia as alterações nos dados e atualiza apenas os subconjuntos de estatísticas impactados em vez de reconstruir as estatísticas completas. Isso significa atualizações menores e mais frequentes focadas nos dados alterados.

Alguns pontos-chave:

  • Disponível apenas para SQL Server 2014 e versões mais recentes.
  • Habilitado no nível de índice ou estatística usando a opção STATISTICS_INCREMENTAL = ON .
  • Mais adequado para tabelas grandes com alterações frequentes de dados em subconjuntos pequenos.
  • Pode reduzir o uso de recursos de manutenção de estatísticas enquanto mantém as estatísticas mais atualizadas.
  • A  STATISTICS_NORECOMPUTE configuração substitui e desativa estatísticas incrementais.

Como funcionam as estatísticas incrementais?

As estatísticas incrementais dividem os dados em partições e mantêm estatísticas em cada partição. À medida que os dados mudam, apenas as partições afetadas são atualizadas. Alguns exemplos de alterações de dados que acionam atualizações incrementais de estatísticas:

  • Instruções INSERT, UPDATE, DELETE ou MERGE que modificam dados dentro da tabela
  • Operações de inserção em massa usando  BULK INSERT ou OPENROWSET(BULK...)

O SQL Server determina quais partições foram afetadas usando bitmaps de rastreamento e atualiza apenas as estatísticas dessas partições.

Nos bastidores, as estatísticas incrementais são implementadas como um objeto de estatísticas com várias partes. O cabeçalho contém estatísticas de resumo global para toda a tabela. Cada partição possui seu próprio subconjunto de estatísticas.

Gerenciando estatísticas incrementais

Para ativar estatísticas incrementais em um objeto de índice ou estatísticas:

CREATE STATISTICS stats_name ON table_name(column)

WITH INCREMENTAL = ON;

CREATE INDEX index_name ON table_name(column)

WITH (STATISTICS_INCREMENTAL = ON);

Esse recurso é habilitado por padrão ao criar estatísticas em uma tabela com otimização de memória. Para desativar estatísticas incrementais, defina  STATISTICS_INCREMENTAL = OFFIsso reconstruirá as estatísticas como estatísticas não incrementais de verificação completa.

UseUPDATE STATISTICSpara reconstruir manualmente estatísticas incrementais sob demanda. Esses incrementos alteraram as partições e deixaram as partições inalteradas, diferentemente da verificação completa.

Verifique as  _STATS_DATE colunas  sys.indexes e  sys.stats veja quando as estatísticas foram atualizadas pela última vez.

Dicas para usar estatísticas

  • Teste seu ambiente de homologaçao e seus dados para ver se as estatísticas incrementais melhoram o desempenho em relação às estatísticas de verificação completa.
  • Considere ativar tabelas grandes com padrões de partição claros, como intervalos de datas.
  • Esteja ciente de que as estatísticas incrementais requerem mais espaço em disco do que as estatísticas típicas.
  • Monitore para garantir que as estatísticas incrementais sejam atualizadas conforme esperado.
  • Desative remova dos fontesSTATISTICS_NORECOMPUTE para que as estatísticas incrementais funcionem corretamente.

Espero que esta visão geral ajude a explicar como você pode aproveitar esse recurso no SQL Server! Qualquer duvida estamos a disposição. Sucesso

Nenhum comentário:

Postar um comentário