Arquivo

Arquivo do Autor

Treinamento Mastering/Internals (Junho de 2018 em SP)

10 de janeiro de 2018 1 comentário

Galera,

Muitas gentes tem solicitado mais informações sobre agenda dos meus treinamentos… Como alguns já sabem, estou trabalhando na reestruturação do finado treinamento de Internals do Luti , este processo tem sido bastante complexo e trabalhoso aja visto a dificuldade enorme de responder a expectativa da galera (culpa da altíssima qualidade entregue pelo Luti).

Estou mergulhado nos livros (veja material de referência abaixo, sim tenho todos), vídeos, material deixado pelo Luti e estudando muito para entregar o melhor treinamento de SQL Server do Brasil.

Estou tendo várias ideias, o que é bom para todos nós… por ex, neste treinamento teremos desafios práticos, teremos um dia gratuito de evento com especialistas convidados… chega de spoiler…

Deixo abaixo a agenda provisória do treinamento e o link para inscrição caso você já queira deixar seu lugar reservado. Lembrando que a quantidade de vagas é limitada. 

Conteúdo Programático

Treinamento: SQL Server – Mastering the database engine (former Internals)

Duração: 40h + 8h

Nível do treinamento: 300/400 (*)

Preço: A definir (ainda estou fazendo as contas, imagino que será algo entre R$3.000,00 e R$3.500,00 reais…). Teremos opção para pago em até 10x.

Data: Junho e Julho de 2018, dias 2, 9, 16, 23, 30 de Junho e 1 (domingo) de Julho, sendo 5 sábados + 1 domingo (evento gratuito para comunidade com convidados).

Local: Evento presencial em São Paulo-SP… mais detalhes a definir.

Para fazer sua inscrição ou entrar em contato me envie um e-mail clicando aqui.

Descrição do treinamento

Objetivo: Mostrar aspectos da arquitetura, estruturas de armazenamento e funcionamento interno do SQL Server, de forma a habilitar o profissional a executar tarefas mais complexas, tais como resolução de problemas (troubleshooting) e otimização de desempenho.

Com o conhecimento adquirido no treinamento, o profissional irá olhar para o SQL Server e seu ambiente de maneira diferente, entendendo melhor os “porquês” das recomendações, e facilitando a identificação e resolução de problemas.

Metodologia de ensino diferenciada: Ao final de cada módulo, teremos um teste prático. Cada aluno receberá instruções para conectar em uma VM com problema, e o objetivo será resolver o problema. No melhor estilo “taí o desafio, resolve”. Com os laboratórios práticos, conseguiremos por em prática os assuntos ensinados e sair da teoria massiva que os treinamentos internos requerem.

Público alvo: Desenvolvedores e DBAs com experiência no desenvolvimento e/ou manutenção de bancos de dados no SQL Server, que suportam aplicações de complexidade média ou alta. É um curso para profissionais interessados em ir além do que os cursos tradicionais oferecem e aprofundar seu entendimento do produto.

Este curso não é introdutório; visa expor conhecimentos avançados a profissionais experientes na ferramenta.

Pré-requisitos: O aluno já deve trabalhar com o SQL Server no dia-a-dia, possuindo experiência em programação e/ou administração, sabendo escrever de forma proficiente consultas T-SQL.

Material de referência:  

  • Inside Microsoft SQL Server 2000 (ISBN-13: 978-0735609983)
  • Microsoft SQL Server 2008 Internals (ISBN: 0735626243)
  • Microsoft SQL Server 2012 Internals (ISBN-13:978-0735658561)
  • Inside Microsoft SQL Server 2005: Query Tuning and Optimization (ISBN-13: 0-7356-2196-9)
  • Inside Microsoft SQL Server 2005: The Storage Engine (ISBN-13: 978-0735621053)
  • Troubleshooting SQL Server – A Guide for the Accidental DBA (ISBN-13: 978-1906434786)
  • Expert Performance Indexing for SQL Server 2012 (ISBN-13: 978-1430237419)
  • SQL Server Execution Plans (ISBN-13: 978-1906434939)
  • SQL Server Query Performance Tuning (ISBN-13:978-1430267430)
  • Inside the SQL Server Query Optimizer (ISBN: 1906434603)
  • Professional SQL Server 2008 Internals and Troubleshooting (ISBN-13:978-0470484289)
  • Professional SQL Server 2012 Internals and Troubleshooting (ISBN-13: 978-1118177655)
  • Complete Showplan Operators (ISBN: 978-1-906434-71-7)
  • But How Do It Know? – The Basic Principles of Computers for Everyone (ISBN-13: 978-0615303765)
  • Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture (ISBN-13: 978-1593276683)

Conteúdo (agenda prévia, ou seja, poderá sofrer poucos ou muitos ajustes…)

Módulo 00: Apresentação do curso

Módulo 01: Arquitetura do SQL Server e SQLOS

  • Componentes do SQL Server
    • Protocol layer
    • Query processor: query optimization e execution
    • Storage engine: Access methods, DB page cache, locks…
  • SQLOS
    • Schedulers, workers e tasks
    • NUMA
    • Threads vs fibers

Módulo 02: Estrutura de armazenamento

Módulo 03: CPU e memória

  • Hyper-threading
  • Componentes de memória
  • Latches
  • Spinlocks

Módulo 04: Storage e acesso aos dados

  • I/O life cycle
  • Debuging

Módulo 05: Índices

Módulo 06: Otimizador de consultas

Módulo 07: Estatísticas

Módulo 08: Gerenciamento de concorrência

Módulo 09: Tempdb

Módulo 10: Debug e troubleshooting

Módulo 11: Performance tuning

Bônus (1 dia): Evento gratuito (talvez eu cobre 5/10 reais só pra dimínuir a quebra e doe o dinheiro) aberto a comunidade com presença de especialistas convidados pelo Fabiano.

(*) 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.

Anúncios
Categorias:Não categorizado

Em 2018 …Treinamento Mastering/Internals estará de volta…

20 de dezembro de 2017 5 comentários

Fala galera,

2a5ngpw[1]

Estou oficialmente trabalhando na reconstrução do finado treinamento de SQL Server Mastering/Internals que o @Luti  ministrava na Sr.Nimbus.

Pretendo abrir uma turma e ministrar este treinamento em Abril ou Maio, fique de olho aqui no Blog para mais detalhes…

Abs.

Fabiano

Categorias:Não categorizado

Slides e scripts palestra, 13 reasons why my query is slow… PASS24h 2017

29 de novembro de 2017 3 comentários

Galera, segue o link para download:

PrintScreen1

Fabiano Amorim – 13 reasons why my query is slow

Abs.

Fabiano Amorim

Categorias:Não categorizado

PASS 24h – Dia 29/11/17

28 de novembro de 2017 Deixe um comentário

Galera, dica rápida… Amanhã (dia 29/11/17) as 13h farei uma apresentação no evento online do PASS 24h.

WebCast: 13 reasons why my query is slow

http://www.pass.org/24hours/2017/portuguese/Schedule.aspx

Bora? Go go go …

 

Categorias:Não categorizado

Vamos esgotar as vagas? PosConference SQLSaturdaySP – 01/10/17

14 de setembro de 2017 1 comentário

Galera, o evento que farei no dia 01/10/17 está bombando, estou mega feliz com o resultado… Será que conseguimos esgotar todas as vagas? Se você quer participar corre porque que já temos 71 inscritos pro evento…  Lembrando que as vagas são limitadas…

Please, me ajude a divulgar o evento e fazer as crianças do Lar da Criança Ninho de Paz terem um final de ano melhor!

Mais detalhes no seguinte link:

https://blogfabiano.com/2017/05/31/posconference-sqlsaturdaysp-011017/

Abs.

Fabiano

Categorias:Não categorizado

HOJE (18/01/17) – Webcast – Pinellas SQL Server UG

18 de julho de 2017 Deixe um comentário

Fala galera, farei uma webcast hoje para o user group do Condado de Pinellas na Florida… Bora participar? É de graça e não dói nada.

O evento será hoje dia 18/07/17 as 19:30.

https://meet.lync.com/aboutsqlserver/dmitri/TBRSY87Z

Abstract:

Man vs Machine: Adaptive query processing and auto tuning on SQL2017.

Query optimizer is getting smart, computers are taking DBAs jobs. In this session MVP Fabiano Amorim will talk about new “automatic” optimizations on SQL Server 2017. Adaptive query processing, auto tuning and few other features added into the product. Are you taking weekend off? What about turn automatic tuning to avoid bad queries to show up after an index rebuild or an ‘unexpected’ change?

Categorias:Não categorizado

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

16 de junho de 2017 Deixe um comentário

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