Conteúdo Programático

Documentos relacionados
Proposta comercial de treinamento

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Otimização de Consultas no SQL Server

SQL Server Desenvolvedor

Formação em Banco de Dados. Subtítulo

Proposta de treinamento

Formação em Banco de Dados. Subtítulo

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

Bancos de Dados IV. Tuning de Bancos de Dados. Rogério Costa

Licenciatura em Informática

Rápida revisão do Modelo Relacional

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Formação de DBAs SQL Server 2008 Parte 6: Gerenciamento de Performance

55144: SQL Server 2014 Performance Tuning and Optimization

PARTE I INTRODUÇÃO AO MICROSOFT SQL SERVER Capítulo 1 Visão geral do Microsoft SQL Server

Treinamento Completo!

Comandos de Manipulação

Otimização e Execução de Consultas Caso Centralizado Parse Query

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

PostgreSQL Desenvolvedor

Análise e otimização de queries no MySQL. Jeronimo Fagundes da Silva

Catálogo de Treinamentos 2017

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Administrando SQL Server para "Não DBAs"

Índices no Oracle Database

Utilizando o Postgres - comandos SQL para a manipulação de dados

SQL. Prof. Roger Cristhian Gomes

Developing Microsoft SQL Server 2014 Databases (20464)

SQL (Tópicos) Structured Query Language

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

MySql. Introdução a MySQL. Andréa Garcia Trindade

T-SQL Mitos. Vamos criar uma tabela para os nossos exemplos e, em seguida, comparar planos de execução. Mãos à obra.

Oracle Database: Fundamentos de SQL e PL/SQL

Apresentação Modelo e SQL. André Luiz Montevecchi

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

de Bases de Dados Exame 2

Siga em frente. Análise

Introdução ao PostgreSQL

ANÁLISE E PROJETO DE BANCO DE DADOS

CONSULTANDO O MICROSOFT SQL SERVER

OTIMIZAÇÃO DE CONSULTAS - MYSQL. Prof. Antonio Almeida de Barros Junior

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Administração de. José Antônio da Cunha CEFET-RN

Introdução ao Banco de Dados. Banco de Dados

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

PostgreSQL Performance

Reindexação Automática em SGBDs Relacionais

Administração e Optimização de BDs

Bases de Dados 2005/2006. Aula 5

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Cursos Guia DBA Pacote Curso SQL Server 2014 e o passo a passo para otimização SQL Server 2016

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

Efficient Query Processing in RDF Databases

Tecnologias de Bancos de Dados

Tuning para Desenvolvedores DB2

IMPLEMENTAÇÃO DE BANCO DE DADOS

Avisos. SQL: Visões. Roteiro SELECT. Suporte de SQL para OLAP SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Cronograma das próximas aulas

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

2 Instalando e configurando o ambiente de desenvolvimento do Microsoft SQL Server

1 OTIMIZAÇÃO DE ESQUEMA E INDEXAÇÃO

Projeto de Banco de Dados

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Bancos (Bases) de Dados

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Processamento e Otimização de Consultas. Msc. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR

SIG: Sistemas de Informações Geográficas. Adaptado de Gilberto Câmara

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha

Oracle Database 12c: Introdução ao SQL Ed. 2

Banco de dados na Web

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões

Formação em Banco de Dados

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

Professor Leonardo Larback

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

Formação ASP.NET MVC com C#

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução

Encontro SQL BH. February Otimização de Consultas no SQL Server

Conexão OLEDB do SQL Server 2005

Boas Práticas com Bancos de Dados

Banco de Dados. Professora: Luciana Faria

Profiler. Criando uma trace para análise de performance de um servidor SQL Server

Organização de Arquivos

Otimização Em Banco De Dados Oracle Através d o Uso de Views Materializadas

Formação em Banco de Dados. Subtítulo

Sumário SELECT + FROM

Revisão Banco de Dados

Sistemas de Banco de Dados I. Escola Alcides Maya DDL - Introdução

Transcrição:

Conteúdo Programático SQL Server Performance with nowait Duração: 32h 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) 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.

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 Limitações 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

o 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 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 O que é prefetch? Devo me preocupar com ele? Nested Loops Optimized, o que é isso? 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 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 o Hints Ajudando otimizador com force order - Bushy plans Group hints Wide/Narrow update 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) o xevent - inaccurate_cardinality_estimate 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: CTEs, TOP 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? Pré-requisitos O aluno já deve ter contato com o SQL Server enquanto desenvolvedor e saber escrever consultas T-SQL. É desejável conhecimento da plataforma de desenvolvimento da Microsoft (.NET).