Inicial > Não categorizado > Treinamento Performance, Outubro 2017 – São Paulo – Sábado/Domingo

Treinamento Performance, Outubro 2017 – São Paulo – Sábado/Domingo

Descrição do treinamento

“No dia mais claro, na noite mais escura, no tuning mais desafiador e plano de execução mais sombrio nenhum problema de performance escapará da minha visão. As queries que assombram os servidores sucumbirão diante do meu conhecimento!”

Depois de fazer o juramento acima, os alunos que ousarem fazer este treinamento irão enfrentar horas de imersão em SQL Server estudando conceitos e técnicas de otimização para SQL Server com objetivo de executar um trabalho de otimização.

O treinamento analisará detalhes do SQL Server, iremos do básico ao internals cobrindo várias áreas do SQL Server tais como: funcionamento dos índices, estatísticas, analise avançada de planos de execução e boas práticas para programação em T-SQL. Otimização de consultas e análise de planos de execução tem grande foco neste treinamento, entender como um plano de execução funciona, como ele é criado, e como influenciar o plano é a chave para otimização de códigos T-SQL. Este treinamento irá aprofundar nos detalhes internos de várias operações do SQL Server.

Se você quer mergulhar no mundo do otimizador de consultas e otimização de códigos, este é o lugar certo! Espere exemplos deep dive, e horas de diversão cheias de comandos avançados e não documentados.

Duração

32 horas.

Público Alvo

Desenvolvedores e DBAs que procuram entender melhor como suas decisões de arquitetura e programação impactam o banco de dados e o desempenho da solução. Curso voltado para aqueles que querem usar de forma eficiente os recursos do SQL Server.

Pré-requisitos

O aluno já deve possui um conhecimento básico do SQL Server e, preferencialmente, já ter tido contato com o produto, executado tarefas básicas de administração e saber escrever consultas em T-SQL.

Material de referência

  • Inside Microsoft SQL Server 2005: Query Tuning and Optimization (MSPRESS; ISBN: 0-7356-2196-9)
  • Microsoft SQL Server 2008 Internals (MSPRESS; ISBN: 0735626243)
  • Complete Showplan Operators (Simple-Talk, ISBN: 978-1-906434-71-7)
  • Inside the SQL Server Query Optimizer (Simple-Talk, ISBN: 1906434603)

Nível

Avançado (300/400)

(*) Descrição dos níveis do treinamento: os treinamentos são classificados com um nível variado, entre 100 e 400, dependendo da complexidade do curso. O nível 100 representa uma introdução com apresentações mais simples sobre um determinado tema, enquanto o nível 400 representa um conteúdo avançado, como análise detalhada da tecnologia e debugging.

Valor, local, datas e inscrição

R$ 2500,00 reais

O treinamento será na cidade de São Paulo – SP

O endereço completo do treinamento ainda será definido, assim que eu tiver a confirmação do local, informarei os alunos via e-mail. Provavelmente o local será próximo a Avenida Paulista.

O evento será realizado de sábado e domingo, nos dias 07, 08, 14 e 15 de Outubro de 2017.

Das 09:00 as 18:00h

Para fazer sua inscrição ou entrar em contato com o instrutor utilize o formulário abaixo ou envie um e-mail clicando aqui

Notas (LEIA AS NOTAS)

  • Este é uma turma PRESENCIAL, e não online!
  • Caso você perca uma aula, não terá acesso a nenhum tipo de gravação ou reembolso proporcional.
  • Todo o material do treinamento será diponibilizado para download.
  • Para solicitação da nota fiscal entrar em contato com o instrutor via formulário ou e-mail.
  • Formas de pagamento:
    • Para pagamento via depósito bancário entrar em contato com o instrutor via formulário ou e-mail.
    • Pagamento parcelado (em até 12x com juros) via PagSeguro será disponibilizado. Entrar em contato com o instrutor via formulário ou e-mail.
  • Teremos 2 intervalos (aka cofee break).
  • Este treinamento inclúi certificado impresso para todos os alunos que tiverem ao menos 75% de presença nas aulas.
  • O conteúdo abaixo poderá sofrer pequenos ajustes, de acordo com a necessidade.
  • Ex-alunos do Performance WithNoWait tem desconto de 50% para fazer este treinamento, ex-alunos do Internals/Mastering tem desconto de 30%.

Conteúdo

Módulo 01: Introdução à otimização no SQL Server
—-• Processo de otimização: elementos, processo formal
—-• Query optimizer: como funciona e como analisar um plano de execução
—-• Ferramentas: Profiler, ClearTrace e SQLQueryStress
Módulo 02: 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
——–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
——–o Estatísticas correlatas e densidade
——–o Atualizando estatísticas com valores falsos
——–o TraceFlags – 2388, 2389, 2390, 2371 (SQL2008SP1), 9292, 9204 e 8666.
——–o Identificando colunas ascendentes
——–o Date correlation optimization
——–o Estatísticas faltando
——–o Gap nas estatísticas
——–o Estatísticas em várias colunas
——–o Regra diferenciada para ler um histograma
——–o Tried trees para estimar strings
——–o AutoCreated – Computed columns
——–o Estatísticas em views
——–o Estatísticas em functions
——–o Impacto das estatísticas em operações de rebuild
Módulo 03: Índices
—-• Tipos e seu armazenamento físico (clustered e non-clustered)
—-• Covering indexes, filtered indexes e índices compostos.
—-• Views indexadas
—-• Melhores práticas para indexação
Módulo 04: Operadores de planos de execução
—-• Index scan e table scan
——–o Allocation order scan
————* Nolock – Uma bomba relógio
————* Inconsistências, leitura repetida e pulando linhas
——–o Index order scan
————* Inconsistências, leitura repetida e pulando linhas
————* Advanced scan (merry-go-round scanning)
————* Scan direction e paralelismo
—-• Index Seek
——–o Seek predicate
——–o Predicate
——–o Range scan
——–o Quando um seek é na verdade um Scan
——–o Seek é sempre melhor que scan?
——–o Hints – “Ajudando” otimizador de consultas com ForceSeek
—-• 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?
—-• 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 In-Memory sort versus regular-sort
——–o Single pass spill e Multiple Pass spill
——–o Analisando opções para evitar sort_warnings
—-• 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
—-• Entendendo algoritmos de join – Merge, loop e hash 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
——–o Nested Loop
————* Como funciona
————* O que é prefetch? Devo me preocupar com ele?
————* Nested Loops Optimized, o que é isso?
——–o Overview e dicas Hash Join
————* Como funciona
————* In-Memory hash join
————* Role Reversal
————* “Hash Bailout”
————* Hash Warning Event
—-• Outros operadores
——–o Merge interval
——–o Split, Sort e Collapse
——–o Assert
——–o Compute Scalar
——–o Concatenation
——–o Split, Sort e Collapse
Módulo 05: Plano de execução avançado
—-• Detalhando o processo de otimização de uma consulta
——–o Parse
——–o Bind
——–o Query tree
——–o Constant folding
——–o Expand view
——–o Auto parameterization
——–o Pre-otimization
————* NNF convert
————* Project remove
————* Simplify
————* Constraint
————* Remove redundant
————* Unnest
————* Join collapse
————* Derive cardinality
————* Heuristic join order
————* Project nomalization
——–o Full otimization
————* Trivial plan
————* Search 0
————* Search 1
————* Search 2
——–o Transformation stats (rules)
—-• Entendendo conceitos importantes
——–o Seletividade
——–o Densidade
——–o Cardinalidade
——–o Magic Density/Guess
——–o Foldable expressions
——–o SARGs
——–o NonUpdating updates
——–o Hints – “ajudando” otimizador com force order
————* Criando bushy plans
—-• 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)
—-• Novidades no Otimizador de consultas do SQL Server 2014
——–o Novo cardinality estimator
——–o Select into em paralelo
——–o Colunas ascendentes
——–o Fazendo join entre histogramas
——–o Valores faltando (Melhorado)
——–o Predicados independentes
——–o xEvent – query_optimizer_estimate_cardinality

——–o Bonûs, Novidades SQL2016 e 2017!

—-• Aprendendo mais com analise de bugs e ”gaps na funcionalidade” do otimizador de consultas
——–o IS NOT NULL
——–o Comando Merge
——–o Expression in queries
——–o Operador de Filter
——–o Produto cartesiano
——–o Stream Aggregate
——–o Filter vs Aggregation
——–o CTE e colunas duplicadas
Módulo 06: Functions
—-• Funções do usuário, quando usar e quando não usar!
—-• Multi e Inline functions, usando de forma eficiente
Modulo 07: Triggers
—-• Trigger versus performance, quando usar e quando não usar!
—-• Analisando os prós e contras
Módulo 08: Funções de Ranking (windowing functions)
—-• Entendendo windows functions
—-• Escrevendo códigos avançados com Windows Functions
—-• Exemplos:
—-• Procurando Gaps
—-• Identificando Ilhas
—-• Running Totals
—-• Percentual comparado à média do período
—-• Diferença de vendas comparado ao ano anterior
—-• Identificando vendas que representam 10% ou mais do total de vendas
Módulo 09: CTEsTOP e CROSS APPLY
—-• Comandos avançados com CTEs e CTEs reursivas
—-• Resolvendo consultas complexas utilizando operadores Top e Apply
Módulo 10: Stored Procedures
—-• Debate, criar procs para tudo?
—-• Benefícios
—-• Cases e cenários de uso
Módulo 11: Boas práticas e mitos
—-• Otimizando Like ‘%%’
—-• 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
—-• Foreign Key ou não?

Categorias:Não categorizado
  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 )

Foto do Facebook

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

Conectando a %s

%d blogueiros gostam disto: