SlideShare uma empresa Scribd logo
1 de 22
Expremendo Performance do
 SQL Server

Felipe Ferreira - @SQLBoy
MCT, MCITP, MCPD, MCTS
http://blogs.solidq.com/fferreira - fferreira@solidq.com
Agenda
  SE TUDO DER CERTO, IREMOS VER:
 Cenário Atual

 Futuro. Se preocupar com detalhes de performance é
  importante?

 Aonde podemos melhorar a performance no SQL Server?

 Considerações de Performance no Design do DB

 Considerações de Performance nas Configurações do DB

 Consultas e Índices
Cenário Atual
 EQUIPES DE DESENVOLVIMENTO

 Equipes não recebem
  treinamento adequado em T-
  SQL

 Equipes de DEV não se
  preocupam com a performance
  do código T-SQL que estão
  escrevendo

 Temos contantemente que
  “apagar incêndios”
Cenário Atual
 ORM’S
                 Muito útil para consultas simples


                 Aumenta a produtividade da
                  equipe

                 A experiência mostra que
                  normalmente geram consultas
                  ruins em casos mais complexos


                 Grande amigo dos consultores de
                  banco de dados 
Futuro
   Azure
   Denali
   PDW
   Performance does Matter!
Performance?
 Otimização dos discos
 Otimização do Windows
 Otimização do serviço do SQL Server
 Otimização do Design da base de
  dados
 Otimização das consultas
 Otimização dos índices
 Etc, etc, etc
Design
 TIPOS DE DADOS

 Campo Idade, precisa ser INT?
  Quantos anos vocês tem?
 Preciso da precisão do DateTime?
 Data type       Range                                                               Storage


 bigint          (- 9,223,372,036,854,775,808) to 9,223,372,036,854,775,807"         8 Bytes


 int             (-2,147,483,648) to 2,147,483,647                                   4 Bytes

 smallint        (-32,768) to 32,767                                                 2 Bytes

 tinyint         0 to 255                                                            1 Byte

 Datetime        1/1/1753 00:00:00.000 to 12/31/9999 23:59:59.997                    8 Bytes

 SmallDatetime   1/1/1900 00:00:00 to 6/6/2079 23:59:59 *arredondamento do segundo   4 Bytes
Design – Tipos de Dados
 EXEMPLO
 Chaves INT
   445MB
 Chaves Uniqueidentifier
   755MB, 70% maior


 Quanto tempo vai levar para inserir 10K linhas
  em cada base de dados?
Overview Demo Tipos de Dados
 O QUE APRENDEMOS NESSA DEMONSTRAÇÃO?



 O tipo de dados escolhido durante o
  design da base de dados importa, e
  vai ser determinante quando vocês
  precisarem escalar a aplicação!
Design
 (DES) NORMALIZAÇÃO


 Em alguns casos, repito, em ALGUNS casos,
  podemos quebrar alguma regra de
  normalização em benefício da performance,
  utilizando colunas calculadas.

 Só deve ser utilizado em casos específicos, em
  tabelas muito grandes, depois de verificado o
  impacto da criação da coluna calculada e índice
Demonstração Normalização
 VAMOS VER NA PRÁTICA



 Demonstração da economia de IO
  que podemos conseguir com a
  criação de uma coluna calculada.
Overview Demonstração
 O QUE VIMOS?


 Podemos conseguir uma economia muito
  grande de IO, mas temos que tomar cuidado
  para que nossa base de dados não vire uma
  “bagunça”

 Temos que lembrar que o novo índice precisará
  de espaço em disco, e terá um custo de
  manutenção
Configurações
    CONFIGURAÇÕES DA BASE



   Auto Create Statistics
   Auto Update Statistics
   Auto Close
   Auto Shrink!
Configurações
 DEMONSTRAÇÃO



 Demonstração de Auto-Shrink
Overview Demo Configurações
 O QUE APRENDEMOS NESSA DEMO?


 Aprendemos que Auto-Shrink é coisa do
  demônio e devemos nos afastar dele!
  Mantenham-se longe do lado negro da
  força!

 Entender as configurações que fazemos
  na nossa base de dados é muito
  importante
Consultas - Índices
  PROFILER, DTA, MISSING INDEXES

 O SQL fornece várias formas de monitorarmos o que
  está acontecendo

 Profiler: capturar consultas sendo executadas

 DTA: sugestões de tunning da base de dados baseado
  nas consultas utilizadas

 Missing Indexes: visualização das sugestões de índices
  que a engine do SQL Server faz baseado nas consultas
  que executamos
Demonstração
 VAMOS VER NA PRÁTICA



 Uso do Profiler
 Uso do DTA
 DMV’s de Missing Index
Overview Demonstração
  O QUE VIMOS?


 Podemos monitorar todo o tráfego do nosso servidor
  através do Profiler


 O DTA facilita nosso trabalho na hora de procurar por
  boas indicações de índices a serem criados


 Além do DTA podemos utilizar as DMV’s para buscar
  nós mesmos por essa informação
Consultas
    ALGUNS ERROS COMUNS EM CONSULTAS



   Uso do CASE com Sub-consultas
   Cuidado com Views
   IN ou BETWEEN?
   TOP 1 ORDER BY OU MAX?
Conclusão
  ALGUEM ACORDADO?


 Performance é um assunto complexo


 Equipe precisa se profissionalizar


 Se vocês não pensarem em performance no começo do
  desenvolvimento, vocês vão sofrer eternamente! 


 O SQL Server faz um ótimo trabalho lidando com os casos
  mais simples, mas podemos usar várias ferramentas do
  produto para analisar a performance das consultas
Recursos Relacionados
 http://blogs.solidq.com/fferreira
 http://blogs.solidq.com/fabianosqlserv
  er
 Hashtag do Twitter: #SQLTipsBR
Obrigado!
Felipe Ferreira - @SQLBoy
MCT, MCITP, MCPD, MCTS
http://blogs.solidq.com/fferreira - fferreira@solidq.com

Mais conteúdo relacionado

Semelhante a Expremendo performance do sql server

Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
Floripa Tech Day DATA
Floripa Tech Day DATA Floripa Tech Day DATA
Floripa Tech Day DATA Marcelo Adade
 
Reunião01 Pass Chapter - MCITPSC
Reunião01 Pass Chapter - MCITPSCReunião01 Pass Chapter - MCITPSC
Reunião01 Pass Chapter - MCITPSCRodrigo Dornel
 
Reunião #1 – 2015 – Overview
Reunião #1 – 2015 – OverviewReunião #1 – 2015 – Overview
Reunião #1 – 2015 – OverviewRodrigo Dornel
 
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...Fabrízio Mello
 
TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...
TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...
TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...Fabrício Catae
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Taller Negócio Digitais
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Finaljcaroso
 
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataformaDo MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataformaLuciano Moreira
 
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...iMasters
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEJoao Galdino Mello de Souza
 
TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?Rafael Salerno de Oliveira
 
Introdução ao Sql Server
Introdução ao Sql ServerIntrodução ao Sql Server
Introdução ao Sql Serverintradb
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)Dirceu Resende
 

Semelhante a Expremendo performance do sql server (20)

Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
TechEd_OFC302
TechEd_OFC302TechEd_OFC302
TechEd_OFC302
 
Floripa Tech Day DATA
Floripa Tech Day DATA Floripa Tech Day DATA
Floripa Tech Day DATA
 
Reunião01 Pass Chapter - MCITPSC
Reunião01 Pass Chapter - MCITPSCReunião01 Pass Chapter - MCITPSC
Reunião01 Pass Chapter - MCITPSC
 
Reunião #1 – 2015 – Overview
Reunião #1 – 2015 – OverviewReunião #1 – 2015 – Overview
Reunião #1 – 2015 – Overview
 
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
 
TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...
TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...
TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Final
 
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataformaDo MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
 
Db2
Db2Db2
Db2
 
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
 
FLISOL 2017 - SQL Server no Linux
FLISOL 2017 - SQL Server no LinuxFLISOL 2017 - SQL Server no Linux
FLISOL 2017 - SQL Server no Linux
 
TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?
 
Introdução ao Sql Server
Introdução ao Sql ServerIntrodução ao Sql Server
Introdução ao Sql Server
 
Sql Server
Sql ServerSql Server
Sql Server
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 

Mais de Felipe Ferreira

SQL Server FastTrack com SQL Server 2012
SQL Server FastTrack com SQL Server 2012SQL Server FastTrack com SQL Server 2012
SQL Server FastTrack com SQL Server 2012Felipe Ferreira
 
Melhorando a Qualidade do seu Banco de Dados utilizando Data Tier Applications
Melhorando a Qualidade do seu Banco de Dados utilizando Data Tier ApplicationsMelhorando a Qualidade do seu Banco de Dados utilizando Data Tier Applications
Melhorando a Qualidade do seu Banco de Dados utilizando Data Tier ApplicationsFelipe Ferreira
 
TDE - Transparent Data Encryption
TDE - Transparent Data EncryptionTDE - Transparent Data Encryption
TDE - Transparent Data EncryptionFelipe Ferreira
 
Gerenciando Multiplos Servidores
Gerenciando Multiplos ServidoresGerenciando Multiplos Servidores
Gerenciando Multiplos ServidoresFelipe Ferreira
 
Visão geral do Integration Services - SSIS
Visão geral do Integration Services - SSISVisão geral do Integration Services - SSIS
Visão geral do Integration Services - SSISFelipe Ferreira
 
Visão geral do Analysis Services
Visão geral do Analysis ServicesVisão geral do Analysis Services
Visão geral do Analysis ServicesFelipe Ferreira
 
FastTrack - Lessons Learned from the Field
FastTrack - Lessons Learned from the FieldFastTrack - Lessons Learned from the Field
FastTrack - Lessons Learned from the FieldFelipe Ferreira
 
Enteprise Data Mining with SQL Server by Mark Tabladillo
Enteprise Data Mining with SQL Server by Mark TabladilloEnteprise Data Mining with SQL Server by Mark Tabladillo
Enteprise Data Mining with SQL Server by Mark TabladilloFelipe Ferreira
 
Apresentação BI - Camara Espanhola
Apresentação BI - Camara EspanholaApresentação BI - Camara Espanhola
Apresentação BI - Camara EspanholaFelipe Ferreira
 

Mais de Felipe Ferreira (11)

SQL Server FastTrack com SQL Server 2012
SQL Server FastTrack com SQL Server 2012SQL Server FastTrack com SQL Server 2012
SQL Server FastTrack com SQL Server 2012
 
SQLSat #127
SQLSat #127SQLSat #127
SQLSat #127
 
Melhorando a Qualidade do seu Banco de Dados utilizando Data Tier Applications
Melhorando a Qualidade do seu Banco de Dados utilizando Data Tier ApplicationsMelhorando a Qualidade do seu Banco de Dados utilizando Data Tier Applications
Melhorando a Qualidade do seu Banco de Dados utilizando Data Tier Applications
 
TDE - Transparent Data Encryption
TDE - Transparent Data EncryptionTDE - Transparent Data Encryption
TDE - Transparent Data Encryption
 
Gerenciando Multiplos Servidores
Gerenciando Multiplos ServidoresGerenciando Multiplos Servidores
Gerenciando Multiplos Servidores
 
Visão geral do Integration Services - SSIS
Visão geral do Integration Services - SSISVisão geral do Integration Services - SSIS
Visão geral do Integration Services - SSIS
 
Visão geral do Analysis Services
Visão geral do Analysis ServicesVisão geral do Analysis Services
Visão geral do Analysis Services
 
Criando um cubo no SSAS
Criando um cubo no SSASCriando um cubo no SSAS
Criando um cubo no SSAS
 
FastTrack - Lessons Learned from the Field
FastTrack - Lessons Learned from the FieldFastTrack - Lessons Learned from the Field
FastTrack - Lessons Learned from the Field
 
Enteprise Data Mining with SQL Server by Mark Tabladillo
Enteprise Data Mining with SQL Server by Mark TabladilloEnteprise Data Mining with SQL Server by Mark Tabladillo
Enteprise Data Mining with SQL Server by Mark Tabladillo
 
Apresentação BI - Camara Espanhola
Apresentação BI - Camara EspanholaApresentação BI - Camara Espanhola
Apresentação BI - Camara Espanhola
 

Expremendo performance do sql server

  • 1. Expremendo Performance do SQL Server Felipe Ferreira - @SQLBoy MCT, MCITP, MCPD, MCTS http://blogs.solidq.com/fferreira - fferreira@solidq.com
  • 2. Agenda SE TUDO DER CERTO, IREMOS VER:  Cenário Atual  Futuro. Se preocupar com detalhes de performance é importante?  Aonde podemos melhorar a performance no SQL Server?  Considerações de Performance no Design do DB  Considerações de Performance nas Configurações do DB  Consultas e Índices
  • 3. Cenário Atual EQUIPES DE DESENVOLVIMENTO  Equipes não recebem treinamento adequado em T- SQL  Equipes de DEV não se preocupam com a performance do código T-SQL que estão escrevendo  Temos contantemente que “apagar incêndios”
  • 4. Cenário Atual ORM’S  Muito útil para consultas simples  Aumenta a produtividade da equipe  A experiência mostra que normalmente geram consultas ruins em casos mais complexos  Grande amigo dos consultores de banco de dados 
  • 5. Futuro  Azure  Denali  PDW  Performance does Matter!
  • 6. Performance?  Otimização dos discos  Otimização do Windows  Otimização do serviço do SQL Server  Otimização do Design da base de dados  Otimização das consultas  Otimização dos índices  Etc, etc, etc
  • 7. Design TIPOS DE DADOS  Campo Idade, precisa ser INT? Quantos anos vocês tem?  Preciso da precisão do DateTime? Data type Range Storage bigint (- 9,223,372,036,854,775,808) to 9,223,372,036,854,775,807" 8 Bytes int (-2,147,483,648) to 2,147,483,647 4 Bytes smallint (-32,768) to 32,767 2 Bytes tinyint 0 to 255 1 Byte Datetime 1/1/1753 00:00:00.000 to 12/31/9999 23:59:59.997 8 Bytes SmallDatetime 1/1/1900 00:00:00 to 6/6/2079 23:59:59 *arredondamento do segundo 4 Bytes
  • 8. Design – Tipos de Dados EXEMPLO  Chaves INT  445MB  Chaves Uniqueidentifier  755MB, 70% maior  Quanto tempo vai levar para inserir 10K linhas em cada base de dados?
  • 9. Overview Demo Tipos de Dados O QUE APRENDEMOS NESSA DEMONSTRAÇÃO?  O tipo de dados escolhido durante o design da base de dados importa, e vai ser determinante quando vocês precisarem escalar a aplicação!
  • 10. Design (DES) NORMALIZAÇÃO  Em alguns casos, repito, em ALGUNS casos, podemos quebrar alguma regra de normalização em benefício da performance, utilizando colunas calculadas.  Só deve ser utilizado em casos específicos, em tabelas muito grandes, depois de verificado o impacto da criação da coluna calculada e índice
  • 11. Demonstração Normalização VAMOS VER NA PRÁTICA  Demonstração da economia de IO que podemos conseguir com a criação de uma coluna calculada.
  • 12. Overview Demonstração O QUE VIMOS?  Podemos conseguir uma economia muito grande de IO, mas temos que tomar cuidado para que nossa base de dados não vire uma “bagunça”  Temos que lembrar que o novo índice precisará de espaço em disco, e terá um custo de manutenção
  • 13. Configurações CONFIGURAÇÕES DA BASE  Auto Create Statistics  Auto Update Statistics  Auto Close  Auto Shrink!
  • 15. Overview Demo Configurações O QUE APRENDEMOS NESSA DEMO?  Aprendemos que Auto-Shrink é coisa do demônio e devemos nos afastar dele! Mantenham-se longe do lado negro da força!  Entender as configurações que fazemos na nossa base de dados é muito importante
  • 16. Consultas - Índices PROFILER, DTA, MISSING INDEXES  O SQL fornece várias formas de monitorarmos o que está acontecendo  Profiler: capturar consultas sendo executadas  DTA: sugestões de tunning da base de dados baseado nas consultas utilizadas  Missing Indexes: visualização das sugestões de índices que a engine do SQL Server faz baseado nas consultas que executamos
  • 17. Demonstração VAMOS VER NA PRÁTICA  Uso do Profiler  Uso do DTA  DMV’s de Missing Index
  • 18. Overview Demonstração O QUE VIMOS?  Podemos monitorar todo o tráfego do nosso servidor através do Profiler  O DTA facilita nosso trabalho na hora de procurar por boas indicações de índices a serem criados  Além do DTA podemos utilizar as DMV’s para buscar nós mesmos por essa informação
  • 19. Consultas ALGUNS ERROS COMUNS EM CONSULTAS  Uso do CASE com Sub-consultas  Cuidado com Views  IN ou BETWEEN?  TOP 1 ORDER BY OU MAX?
  • 20. Conclusão ALGUEM ACORDADO?  Performance é um assunto complexo  Equipe precisa se profissionalizar  Se vocês não pensarem em performance no começo do desenvolvimento, vocês vão sofrer eternamente!   O SQL Server faz um ótimo trabalho lidando com os casos mais simples, mas podemos usar várias ferramentas do produto para analisar a performance das consultas
  • 21. Recursos Relacionados  http://blogs.solidq.com/fferreira  http://blogs.solidq.com/fabianosqlserv er  Hashtag do Twitter: #SQLTipsBR
  • 22. Obrigado! Felipe Ferreira - @SQLBoy MCT, MCITP, MCPD, MCTS http://blogs.solidq.com/fferreira - fferreira@solidq.com