Inicial > Treinamento, Virtual PASS BR > Partes II, III, IV e V dos on-demand de ExecPlans

Partes II, III, IV e V dos on-demand de ExecPlans

Galera, depois da boa aceitação do publico para com os treinamentos on-demand estamos publicando novas turmas.

O Luti vai falar sobre indexação: on-demand] Indexação I – Conceitos, criação e estrutura física

O Ivan vai falar sobre T-SQL: [on-demand] Transact SQL I – Introdução e consultas básicas

Eu volto a falar sobre Execution Plans: [on-demand] Planos de execução II – Estatísticas, Seeks e Scans

Novamente estamos fazendo promoção de lançamento, quem comprar até o final do ano, paga R$100,00 reais por cada treinamento.

Aproveitando o embalo, já publiquei o conteúdo dos módulos III, IV e V do treinamento de execution plans, galera tem MUITA coisa boa, e o módulo IV ficou #sinistro Hot smile.

Ainda não temos previsão de quando eles serão lançados, mas pretendemos publicar essa informação em breve.

Se você achou interessante e quer fazer uma imersão em sua empresa, converse conosco, quem sabe não passamos alguns dias in-company e sua empresa paga tudo? Melhor impossível não? Qualquer dúvida manda um e-mail pra contato@srnimbus.com.br

Considerando todas os módulos temos as seguintes ementas:

ExecPlans parte I:

Query optimizer: como funciona e como analisar um plano de execução

Otimizando consultas analisando operadores

·         Key Lookup e RID Lookup

o   O que é?

o   Como melhorar consultas com Key Lookup utilizando clausula Include

o   Diferença entre Key Lookup e Rid Lookup

o   Cuidados com “missing indexes” (dicas do SQL Server)

o   Até quando vale a pena fazer um lookup?

o   O que é prefetch? Devo me preocupar com ele?

o   Nested Loops Optimized, o que é isso?

 

·         Melhorando consultas com o operador Sort

o   Otimizando consultas com operadores de SORT

o   Ordenação na aplicação ou no banco de dados?

o   Monitorando Sort Warnings

o   Entendendo memory grant

o   xEvent – sort_memory_grant_adjustment

o   In-Memory sort versus regular-sort

§  Single pass spill e Multiple Pass spill

o   Analisando opções para evitar sort_warnings

 

·         Melhorando consultas com operador Merge Join

o   Entendendo o algoritmo de Merge Join

o   Evitando Sort Merge Join

o   Otimizando Merge Joins em disco

o   Cenários propensos a otimização do Merge Join

ExecPlans parte II:

Query optimizer: Estatísticas

·         Introdução a estatísticas

o   Entendendo como estatísticas funcionam e sua importância

o   Lendo um histograma

·         Estatísticas avançado parte I

o   Manutenção em estatísticas

o   Auto Update, Auto Created, Auto update async e norecompute

o   Estatísticas filtradas

o   Estatísticas cross-table

o  Variáveis do tipo table versus tabelas temporárias

 

·         Operadores

o   Index scan e table scan

§  Allocation order scan

·         Nolock – Uma bomba relógio

·         Inconsistências, leitura repetida e pulando linhas

§  Index order scan

·         Inconsistências, leitura repetida e pulando linhas

·         Advanced scan (merry-go-round scanning)

·         Scan direction e paralelismo

o   Index Seek

§  Seek predicate

§  Predicate

§  Range scan

§  Quando um seek é na verdade um Scan

§  Seek é sempre melhor que scan?

§  Hints – “Ajudando” otimizador de consultas com ForceSeek

ExecPlans parte III:

Estatísticas avançado parte II

·         Estatísticas correlatas e densidade

·         Atualizando estatísticas com valores falsos

·         TraceFlags – 2388, 2389, 2390, 2371 (SQL2008SP1), 9292, 9204 e 8666.

·         Identificando colunas ascendentes

·         Date correlation optimization

·         Estatísticas faltando

·         Gap nas estatísticas

·         Estatísticas em várias colunas

·         Regra diferenciada para ler um histograma

·         Tried trees para estimar strings

·         AutoCreated – Computed columns

·         Estatísticas em views

·         Estatísticas em functions

·         Impacto das estatísticas em operações de rebuild

Operadores

·         Spool

o   Table Spool – Lazzy e Eager

§  Halloween problem

§  Entendendo rebind e rewind

o   Index Spool

§  Regra diferenciada para rebind e rewind

o   Otimizando planos com operações de spool

o   RowCount Spool

o   Evitando spools em operações de insert com scalar functions

ExecPlans parte IV:

Detalhando o processo de otimização de uma consulta

·         Parse

·         Bind

·         Query tree

·         Constant folding

·         Expand view

·         Auto parameterization

·         Pre-otimization

o   NNF convert

o   Project remove

o   Simplify

§  Constraint

§  Remove redundant

§  Unnest

o   Join collapse

o   Derive cardinality

o   Heuristic join order

o   Project nomalization

·         Full otimization

o   Trivial plan

o   Search 0

o   Search 1

o   Search 2

·         Transformation stats (rules)

·         Entendendo conceitos importantes

o   Seletividade

o   Densidade

o   Cardinalidade

o   Magic Density/Guess

o   Foldable expressions

o   SARGs

o   Simplifications

§  Eliminando joins (FKs)

§  Detectando contradição (Check constraints)

§  Índices únicos (eliminando Asserts)

o   NonUpdating updates

·         Comandos avançados

o   DBCC OPTIMIZER_WHATIF

o   Rules (DBCC RULEON/OFF, QueryRuleOff)

o   Índices hipotéticos (DBCC AUTOPILOT, SET AUTOPILOT)

o   Discos SSDs VS peso do custo de IO/CPU (DBCC SETIOWEIGHT, SETCPUWEIGHT)

o xEvent – inaccurate_cardinality_estimate

Operadores

·         Loop join

·         Merge join (coberto no módulo I)

·         Hash joins

·         Hints – “ajudando” otimizador com force order

o   Criando bushy plans

·         Hints – “ajudando” otimizador forçando um algoritmo de join

ExecPlans parte V:

Aprendendo mais com analise de bugs e ”gaps na funcionalidade” do Otimizador de consultas

·         IS NOT NULL

·         Comando Merge

·         Expression in queries

·         Operador de Filter

·         Produto cartesiano

·         Stream Aggregate

·         Filter vs Aggregation

·         CTE e colunas duplicadas

Operadores

·         Merge interval

·         Assert

·         Compute Scalar

·         Concatenation

·         Split, Sort e Collapse

Quebrando mitos

        COUNT(1) versus COUNT(*)

        JOIN versus EXISTS

        DISTINCT versus GROUP BY

        SET versus SELECT

        TOP 1 ORDER BY DESC versus MAX

        UNION versus UNION ALL

        NOT IN versus NOT EXISTS

        CURSOR versus WHILE

        Ordem das tabelas no JOIN

  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: