1 / 15

Estatísticas SQL Server 2012/2014

Estatísticas SQL Server 2012/2014. September 2014. Upcoming SQLSaturdays. Sep 27 #325 Sao Paulo. http:// www.sqlsaturday.com/325/eventhome.aspx. Tuning do Ínicio ao Fim Thiago Carlos de Alencar 09:30 AM. Visit www.sqlsaturday.com to register for an event near you!. Quem Sou Eu ?.

Télécharger la présentation

Estatísticas SQL Server 2012/2014

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Estatísticas SQL Server 2012/2014 September 2014

  2. Upcoming SQLSaturdays • Sep 27 #325 Sao Paulo http://www.sqlsaturday.com/325/eventhome.aspx Tuning do ÍnicioaoFim Thiago Carlos de Alencar 09:30 AM Visit www.sqlsaturday.comto register for an event near you!

  3. QuemSouEu? • Thiago Carlos [TC] de Alencar • Premier Field Engineer • Blog: www.tcalencar.wordpress.com • E-mail: alencar.dba@outlook.com • Certificações: MCITP e MCT

  4. Agenda • Estatísticas do SQL Server • Introdução a Estatísticas • Criando / Atualizando Estatísticas • Visualizando as Estatísticas • Lendo um Histograma • Estatísticas Filtradas • No SQL 2014? • Novo Algoritmo de Cardinalidade • Melhorias em: ASC/ DESC Estimate - JoinEstimates - MultipleColumnDependency • Demo

  5. Introdução a Estatísticas • O SQL Server Precisa de estatísticas para tentar criar bons planos de execução. • Estatísticas mantem informações sobre a distribuição dos dados • A geração de estatísticas no SQL Server automática é apenas para uma coluna. • Histograma pode ter até 200 “passos” • É “saudável” manter muitas estatísticas? • DEPENDE

  6. Criando / Atualizando Estatísticas • O SQL Server Cria / Atualiza automaticamente as estatísticas no SQL Server • Estatísticas criadasautomaticamentecomeçam com _WA….. • Propriedade do Banco de dados • CREATE STATISTICSstatistics_nameON { table_or_indexed_view_name } • UPDATE STATISTICS table_or_indexed_view_name [ { { index_or_statistics__name }

  7. Visualizandoestatísticas • DBCC SHOW_STATISTICS ( table_or_indexed_view_name , target ) [ WITH [ NO_INFOMSGS ] < option > [ , n ] ] < option > :: =     STAT_HEADER | DENSITY_VECTOR | HISTOGRAM | STATS_STREAM • sys.stats • sys.stats_columns • STATS_DATE(ObjectId, Stats_id) • sys.dm_db_stats_properties (Object_id, Stats_Id) • Nova no SQL Server 2014 • Aplica-se a SQL Server 2008 R2 SP2 e SQL Server 2012

  8. Lendo o Histograma SELECT * FROM Production.TransactionHistory WHERETransactionDate= '20070906' DBCC SHOW_STATISTICS(“Production.TransactionHistory”, TransactionDate) RANGE_HI_KEY - Valor chave de cada amostra. AVG_RANGE_ROWS – Quantidade média de registros no RANGE Ex: RANGE_ROWS / DISTINCT_RANGE_ROWS DISTINCT_RANGE_ROWS – Qtde de valores distintos que existe para o RANGE_ROWS. Ex: Quantos valores distintos existe entre o valor de 2007-09-05 até 2007-09-06 (exclui o RANGE_HI_KEY) RANGE_ROWS – Qtde de Linhas dos valores dentro do RANGE. Ex: O range da amostra da linha 4 vai de 2007-09-05 até 2007-09-06 (exclui o RANGE_HI_KEY) EQ_ROWS – Qtde de Linhas exatas para os valores de RANGE_HI_KEY. Ex: Para o valor de 2007-09-03 existem 203.

  9. Estatísticas Filtradas • Melhordesempenho de consultas e qualidade de plano • Redução de custos de manutenção de estatísticas • Por ser um conjunto menor de dados • Adiciona a cláusula WHERE • CREATE STATISTICS NomeEstatisticaON Tabela (Coluna(n)) WHERE Predicado IS NOT NULL

  10. Novo no SQL 2014

  11. Novo algoritmo de cardinalidade • Novo “Cardinality Estimator” - CE • É um sub-componente do “Query Processor” • O nível de compatibilidadedeveestar em 120 (SQL 2014) • Não tem mudado desde o SQL Server 7.0 – 15 Anos • Tem recebido melhorias através de Services Pack, Hotfixes, traceflags e etc. • Alterar a estrutura da arquitetura atual tornou-se difícil • Melhora a maioria dos “Workloads” • Maioria não inclui “TODAS” • Teste é VITAL • Regressão de Planos • TF 2312 ou Nível de compatibilidade do SQL Server 2012 (110)

  12. Melhorias em: • ASC / DESC Estimativas de Valores Chaves • Mudança no comportamento de “Ascending Columns” • Múltiplascolunas – AND e OR • Old: (S¹ * S²) * Cardinalidade / (S¹ + S²) - (S¹ * S²) * Cardinalidade • Novo: C * (S¹ * SQRT(S²) * SQRT(SQRT(S³)) ….) • O cálculo é feito apenas nas “quatro” primeiras seletividades • Dependência de Múltiplas Colunas*. • Independência de colunas em versões anteriores

  13. Referências: • http://msdn.microsoft.com/pt-br/library/ms190397.aspx • http://msdn.microsoft.com/pt-br/library/ms188038.aspx • http://msdn.microsoft.com/pt-br/library/ms187348.aspx • http://msdn.microsoft.com/pt-br/library/ms174384.aspx • http://technet.microsoft.com/pt-br/library/cc280372(v=sql.110).aspx • http://msdn.microsoft.com/en-us/library/dn673537.aspx • http://blogs.msdn.com/b/ianjo/archive/2006/04/24/582227.aspx • http://www.benjaminnevarez.com/2013/02/statistics-on-ascending-keys/ • https://www.simple-talk.com/sql/database-administration/statistics-on-ascending-columns/

  14. DEMO

  15. Stay Involved! • Sign up for a free membership today at sqlpass.org • Linked In: br.linkedin.com/in/alencardba • Facebook: Thiago Carlos de Alencar • Twitter: @alencardba • PASS: http://www.sqlpass.org

More Related