Qual é o tamanho de amostra padrão das estatísticas no SQL Server?


11

Do MSDN :

Quando nenhuma das opções de amostra (SAMPLE, FULLSCAN, RESAMPLE)é especificada, o otimizador de consulta coleta os dados e calcula o tamanho da amostra por padrão.

Como identificar o tamanho da amostra padrão das estatísticas?

Passei pelo MSDN, mas não encontrei nenhuma fórmula ou método para identificar o tamanho da amostra padrão. Em todos os lugares, existem apenas fórmulas presentes para acionar a atualização automática de estatísticas. Qualquer ponteiro será útil.

Respostas:


20

Como identificar o tamanho da amostra padrão das estatísticas?

Eu citaria o artigo Blogs.msdn

Algoritmo de estatísticas de atualização automática:

Portanto, as estatísticas da Atualização automática serão acionadas para cada alteração de 500 + 20% nas linhas da tabela. Obviamente, temos um algoritmo aprimorado no SQL 2012, que é o SQRT (1000 * linhas da tabela), que é muito melhor.

Quando acionado, ele usa a taxa de amostragem padrão e aqui está o algoritmo como calcula a taxa de amostragem.

1) Se a tabela <8MB, atualiza as estatísticas com uma varredura completa.

2) Se a tabela> 8MB, segue um algoritmo. Reduz a taxa de amostragem à medida que o número de linhas na tabela aumenta, para garantir que não estamos analisando muitos dados. Este não é um valor fixo, mas está sob o controle do otimizador. Também não é um algoritmo linear.

Exemplo: se tivermos 1.000.000 de linhas, a taxa de amostragem será de 30%, mas quando o número de linhas aumentar para 8.000.000, a taxa de amostragem será reduzida para 10%. Essas taxas de amostragem não estão sob o controle dos DBAs, mas o otimizador decide.

Para entender melhor, sugiro que você leia

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.