locked
Update Statistics Full Scan Ou Sample By RRS feed

  • Pergunta

  • Pessoal, boa tarde!

     

    Qual opção selecionar na atualização das estatísticas: Full Scan ou Sample BY (qual valor) ?

     

    Obrigado,

    Denison Soares

     

     

    sexta-feira, 18 de novembro de 2011 15:11

Respostas

  • Boa Tarde,

    Não há resposta certa. Se você utilizar a opção FULL, suas estatísticas estarão precisas, mas o SQL Server precisará ler a tabela inteira para produzí-las. Se você utilizar a opção SAMPLE, os SQL Server lerá parte da tabela e produzirá o resultado mais rápido porém com uma precisão menor.

    Para tabelas volumosas, o FULL pode ser complicado, mas a medida exata é você (ou os testes) que diz. Caso suas tabelas já possuam a opção AUTO UPDATE STATISTICS (ou o banco) a atualização de estatísticas pode não ser necessária.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 18 de novembro de 2011 16:43

Todas as Respostas

  • Denilson,

     

    Trecho do proprio BOL.

    Specifies the approximate percentage or number of rows in the table or indexed view for the query optimizer to use when it updates statistics. For PERCENT, number can be from 0 through 100 and for ROWS, number can be from 0 to the total number of rows. The actual percentage or number of rows the query optimizer samples might not match the percentage or number specified. For example, the query optimizer scans all rows on a data page.

    SAMPLE is useful for special cases in which the query plan, based on default sampling, is not optimal. In most situations, it is not necessary to specify SAMPLE because the query optimizer uses sampling and determines the statistically significant sample size by default, as required to create high-quality query plans.

    SAMPLE cannot be used with the FULLSCAN option. When neither SAMPLE nor FULLSCAN is specified, the query optimizer uses sampled data and computes the sample size by default.

    We recommend against specifying 0 PERCENT or 0 ROWS. When 0 PERCENT or ROWS is specified, the statistics object is updated but does not contain statistics data.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    sexta-feira, 18 de novembro de 2011 15:25
    Moderador
  • Boa Tarde,

    Não há resposta certa. Se você utilizar a opção FULL, suas estatísticas estarão precisas, mas o SQL Server precisará ler a tabela inteira para produzí-las. Se você utilizar a opção SAMPLE, os SQL Server lerá parte da tabela e produzirá o resultado mais rápido porém com uma precisão menor.

    Para tabelas volumosas, o FULL pode ser complicado, mas a medida exata é você (ou os testes) que diz. Caso suas tabelas já possuam a opção AUTO UPDATE STATISTICS (ou o banco) a atualização de estatísticas pode não ser necessária.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 18 de novembro de 2011 16:43
  • Gustavo, verifiquei que a opção Auto Update Statistics está TRUE... Como saber se pode não ser necessária?

     

    []'s

    Obrigado,

    Denison Soares

    sexta-feira, 18 de novembro de 2011 17:02
  • Boa Tarde,

    Rode sp_autostats 'Tabela' para ver a última vez que as estatísticas foram atualizadas. Se estiverem muito defasadas pode ser necessário atualizá-las. Entretanto, se o Update Statistics está como True é difícil disso acontecer. Lembre-se que as estatísticas só são atualizadas se houver operações de escrita. Se você só tem leitura as estatísticas não serão atualizadas, pois, não fará sentido.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 18 de novembro de 2011 17:12
  • Gustavo, executei a sp_autostats em 5 tabelas. Todas estão com a data de última atualização = 13/11/2011


    Quer dizer que não preciso executar a Update Statistics, não é?

     

    []'s

    Obrigado, 

    Denison Soares


    sexta-feira, 18 de novembro de 2011 18:11