Treinamento Performance, Fevereiro 2017 – São Paulo – Integral

2 de janeiro de 2017 9 comentários

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 no período integral nos dias 20, 21, 22 e 23 de Fevereiro 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.
  • Para pagamento via depósito bancário 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.
  • Pagamento parcelado via PagSeguro será disponibilizado. Entrar em contato com o instrutor via formulário ou e-mail.

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
—-• 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

Falta pouco tempo… treinamento online…

25 de outubro de 2016 Deixe um comentário
Categorias:Não categorizado

Treinamento Online – 150 dicas de otimização – 31 out, 01 e 02 de Nov 2016

12 de outubro de 2016 Deixe um comentário

Fala galera… pra quem pediu o treinamento online!!!

untitled

https://www.eventbrite.com.br/e/150-otimizacoes-que-voce-deveria-conhecer-online-tickets-28562751960

Abs.

Fabiano

Categorias:Não categorizado

PosConference SQLSat570

5 de outubro de 2016 Deixe um comentário

Galera, da série vai que interessa, e ajuda eu…

https-%2f%2fcdn-evbuc-com%2fimages%2f24753970%2f185271635243%2f1%2foriginal

É oficial, vamos fazer um evento de posConference na Microsoft SP no Domingo dia 9/10. Bora participar e ajudar na divulgação?

http://www.sqlsaturday.com/570/EventHome.aspx

https://www.eventbrite.com/e/pos-sqlsat-conference-150-otimizacoes-que-voce-deveria-conhecer-tickets-28374160879

Valeu!

Categorias:Não categorizado

PDF livro Diálogos ao VENTO

21 de setembro de 2016 Deixe um comentário

Fala galera…

Da série, vai que interessa…
Quem me acompanha no facebook provavelmente já sabe… pra quem não sabe, ha alguns meses, eu escrevi um livro com um amigo… Não é sobre SQL Server, mas mesmo assim achei interessante e gostei muito da experiência…

Decidi colocar o PDF aqui pra quem se interessar…

https://mcflyamorim.files.wordpress.com/2016/09/dialogos_ao_vento.pdf

Se você baixar, ficarei MEGA feliz de saber o que você achou 🙂 … por favor, escreva um comentário aqui, ou me mande um e-mail… mas não deixe de me dar seu feedback… 🙂

Estou escrevendo outro e pretendo ter algo em breve (leia-se daqui a vários meses)… ainda não sei ao certo, mas acho que vou chama-lo “Sei lá – Aforismos e agonias de quem pensou, pensou e concluiu que sei lá.”

Espero que gostem…

Abs.

Fabiano

Categorias:Não categorizado

PPT – Palestra Univem 2016

14 de setembro de 2016 Deixe um comentário

Pessoal, conforme prometido segue o link para download dos slides que usei na minha palestra sobre carreira…

https://mcflyamorim.files.wordpress.com/2017/03/carreira-dicas-para-fazer-um-milhc3a3o-com-mssql.pptx

Espero que tenham gostado da apresentação…

Abs.

Fabiano

Categorias:Não categorizado

Ainda temos algumas vagas…

30 de maio de 2016 Deixe um comentário

Pessoal, ainda temos algumas vagas disponíveis para o treinamento SQL25 que acontecerá aos sábados agora em Junho/Julho de 2016…

Lembrando que estamos trabalhando com um preço especial para as turmas de 2016… apenas R$1.500,00 reais… corre…

Quem tiver interesse, por favor envio um e-mail para contato@srnimbus.com.br

Para mais detalhes veja o link:

https://blogfabiano.com/2015/12/25/treinamento-sql25-em-sao-paulo-aos-sabados-fevmar-2016/

 

Categorias:Não categorizado