
Eu tenho um sp_updatestats noturno em um banco de dados de produção, que parece funcionar bem, exceto por um processo armazenado específico que apresenta problemas de desempenho após a atualização.
A equipe de desenvolvimento está atualmente trabalhando na correção do processo (alguns novos índices e alguma reorganização da consulta que recomendei), mas atualmente a única solução alternativa é fazer um
UPDATE STATISTICS [SuperGiantTable]
WITH FULLSCAN
Então, a questão é: posso forçar o sp_ updatestats a fazer a opção "com fullscan"? Euquererpara? Caso contrário, provavelmente adicionarei o comando UPDATE STATISTICS acima para ser executado imediatamente após sp_updatestats.
SQL 2000, aliás.
Responder1
Como disse KPWINC, “Realmente depende”.
Existem vários outros itens que influenciam a resposta à sua pergunta e uma resposta geral pode não ser apropriada.
O Microsoft MSDN possui entradas para sp_updatestats (http://msdn.microsoft.com/en-us/library/aa260337(SQL.80).aspx) e "ATUALIZAR ESTATÍSTICAS" (http://msdn.microsoft.com/en-us/library/aa260645(SQL.80).aspx)
Para responder às suas últimas perguntas primeiro:
Você precisa reler a entrada SQLServerPedia. Especificamente:
A reconstrução do seu índice atualizará automaticamente as estatísticas do índice (com tamanho de amostra de 100%, o que geralmente é melhor do que o obtido ao usar sp_updatestats).Depois que a reconstrução do índice for concluída, você poderá usar sp_updatestats para atualizar as outras estatísticas que requerem atenção (2005+).
Olhando para a documentação do UPDATE STATISTICS (2000), diz o seguinte para amostragem:
Nota O comportamento padrão é executar uma varredura de amostra na tabela de destino ou na visualização indexada.O SQL Server calcula automaticamente o tamanho de amostra necessário.
Kimberly Tripp reuniu algumas entradas de blog sobre estatísticas, índices e planos de manutenção de banco de dados (http://www.sqlskills.com/BLOGS/KIMBERLY/category/Statistics.aspx). Embora as informações possam ou não ser diretamente utilizáveis por você, a orientação de cada entrada do blog deve ser e os sites referenciados provavelmente serão úteis.
Responder2
Realmente depende...
Quantos bancos de dados?
Qual é o tamanho do(s) banco(s) de dados?
Quanta atividade?
sp_updatestats (por padrão) atualiza estatísticas com uma taxa de amostragem padrão. Você pode tentar usar a opção de reamostrar, mas isso só funcionará se uma atualização automática não tiver ocorrido desde a última vez que você atualizou as estatísticas (a atualização automática também usa uma taxa de amostragem padrão).
Quando você recria um índice, as estatísticas são atualizadas com uma verificação completa e a maioria das pessoas observa um bom desempenho após a recriação do índice.
Apenas em raras situações as pessoas desativam os recursos de estatísticas automáticas. Eu recomendaria deixá-lo ligado.
Tenha um trabalho que seja executado em um intervalo apropriado (que depende dos padrões de modificação de dados para cada tabela) e faça uma atualização manual das estatísticas usando varredura completa ou alguma outra taxa de amostragem alta.
Geralmente eu faria o seguinte:
Se for um banco de dados grande - backup do log de transações de hora em hora.
- Backup diferencial diário. - Desfragmentação diária. - Estatísticas de atualização diária.
- Reindexar uma vez por semana. - Backup completo uma vez por semana.
Depende muito do banco de dados e das transações.
Responder3
Mais uma coisa a ter em mente é que a taxa de amostragem calculada automaticamente pode fazer com que o histograma gerado e o vetor de densidade não considerem adequadamente qualquer distorção de dados que você possa ter, contra a qual o sproc opera.
Você sabe a diferença nos planos de consulta entre o sproc após uma atualização de estatísticas de amostra e uma atualização de estatísticas de varredura completa?
Outra coisa - tome cuidado com os planos de manutenção que reconstroem índices e depois atualizam as mesmas estatísticas que foram atualizadas como efeito colateral da reconstrução - você pode acabar comPIORestatísticas então se você tivesse deixado as estatísticas atualizadas de reconstrução em paz.
Obrigado