SlideShare uma empresa Scribd logo
1 de 19
SQL Saturday #325 
Entendendo paralelismo 
no SQL Server 
Luciano Moreira 
luciano.moreira@srnimbus.com.br 
http://luticm.blogspot.com
Quem sou? 
 Luciano Moreira {LUTI} 
 Hepta, Microsoft, Nimbus e agora 
Sicoob/Nimbus 
 MC<xyz>, mas não MCM 
 De MCM wannabe para database geek 
 Roadmap: SQL Server, DB2, Oracle, … 
 MVP desde Julho/2010 
 PASS Chapter Leader - SQLServerDF 
2 |
PATROCINADORES
Agenda 
 Paralelismo 
 Planos paralelos 
 Query optimizer e paralelismo 
 SQL Server waits e 100% de CPU 
 Conclusão 
 Referência 
4 |
Paralelismo 
 Assunto que dá até briga em bar! 
 MAXDOP = 1 para OLTP 
 OLTP É OLTP! 
 MAXDOP = 0 e deixa o SQL Server se virar 
 CXPACKET é o pior wait type do SQL 
Server! 
 Servidor com CPU em 100% é culpa do 
paralelismo 
5 |
Paralelismo 
 “Parallelism: Exploiting concurrency in a 
program with the goal of solving a problem in 
less time” 
 O que não significa que você vai usar menos 
recursos para isso 
 Máquinas com cada vez mais cores 
disponíveis para processamento 
6 |
Planos paralelos 
 Operadores de exchange: 
 Gather Stream 
 Repartition Stream 
 Distribute Stream 
 Marca limites entre zonas do plano paralelo 
 Pode preservar a ordem de execução (merge 
exchange) 
7 |
Planos paralelos 
 Thread 0 = coordinator thread 
 Aguarda o fim da execução do plano 
 Zonas paralelas dentro de um plano 
8 |
Planos paralelos 
 Produtores e consumidores executam 
independentemente em threads diferentes 
 Produtores preenchem pacotes e enviam 
para os consumidores através de CXPORT e 
CXPIPE 
 Preenche buffers com registros 
 Class eXchange PACKET (CXPACKET) 
 “Occurs when trying to synchronize the query 
processor exchange iterator. You may consider 
lowering the degree of parallelism if contention on 
this wait type becomes a problem.” 
9 |
Analisando planos paralelos 
DEMO
Query optimizer e paralelismo 
 O SQL Server trabalha com fases de 
otimização para chegar a um plano bom o 
suficiente 
 Complexidade do otimização é exponencial, 
então exploração não é infinita 
 Árvore com custo do plano de execução 
 Utiliza estatísticas para fazer estimativas de 
registros e custo 
11 |
Query optimizer e paralelismo 
 Estatísticas são muito importantes 
 200 passos do histograma e densidade 
podem não ser suficientes 
 MAX DEGREE OF PARALLELISM 
 COST THRESHOLD FOR PARALLELISM 
 “Estimated DOP is half the available logical 
processors at compile time” 
12 |
Query optimizer e planos paralelos 
DEMO
SQL Server waits e latches 
 CXPACKET 
 SOS_SCHEDULER_YIELD 
 Latches 
 ACCESS_METHODS_DATASET_PARENT 
 ACCESS_METHODS_SCAN_RANGE_GENERATOR 
14 |
100% CPU e CXPACKET 
DEMO
Conclusão 
 Paralelismo não é uma entidade do mal! 
 Cuidado com paralelismo em excesso 
 Cost threshold atual é baixo para a maioria 
dos ambientes 
 Não recomendo MAXDOP = 1 
 Existem muitos outros detalhes e “edge 
cases” 
 SQLSat #361?? 
16 |
Referências 
 Paul White 
 http://sqlblog.com/blogs/paul_white/ 
 Adam Machanic 
 http://sqlblog.com/blogs/adam_machanic/ 
 Fabiano Amorim 
 http://blogfabiano.com/ 
17 |
Dúvidas? 
18 | 26/11/2011 |
Obrigado 
 luciano.moreira@srnimbus.com.br 
 http://luticm.blogspot.com 
 @luticm 
19

Mais conteúdo relacionado

Mais procurados

Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
Testando aplicações DataSnap
Testando aplicações DataSnapTestando aplicações DataSnap
Testando aplicações DataSnapAndreano Lanusse
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endMario Guedes
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com JavaAlisson Pedrina
 
Desmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLDesmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLEuler Taveira
 
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NASAnálise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NASKleber Silva
 
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...EUBrasilCloudFORUM .
 
Introdução ao Node.js
Introdução ao Node.jsIntrodução ao Node.js
Introdução ao Node.jsEdgar Eler
 
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Joao Galdino Mello de Souza
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRJulio Viegas
 
Especificação de plataforma DaaS para laboratórios de informática
Especificação de plataforma DaaS para laboratórios de informática Especificação de plataforma DaaS para laboratórios de informática
Especificação de plataforma DaaS para laboratórios de informática Demis Gomes
 
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...Joao Galdino Mello de Souza
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?tdc-globalcode
 
Cloud computing & Spring Framework
Cloud computing & Spring FrameworkCloud computing & Spring Framework
Cloud computing & Spring FrameworkJulio Viegas
 
Resolvendo problemas de performance em aplicações Delphi e bancos de dados
Resolvendo problemas de performance em aplicações Delphi e bancos de dadosResolvendo problemas de performance em aplicações Delphi e bancos de dados
Resolvendo problemas de performance em aplicações Delphi e bancos de dadosAndreano Lanusse
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIMario Guedes
 

Mais procurados (20)

Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
Testando aplicações DataSnap
Testando aplicações DataSnapTestando aplicações DataSnap
Testando aplicações DataSnap
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com Java
 
PostgreSQL Ha
PostgreSQL HaPostgreSQL Ha
PostgreSQL Ha
 
Desmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLDesmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQL
 
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NASAnálise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
 
Zabbix 3 0-cinfotec
Zabbix 3 0-cinfotecZabbix 3 0-cinfotec
Zabbix 3 0-cinfotec
 
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
 
Introdução ao Node.js
Introdução ao Node.jsIntrodução ao Node.js
Introdução ao Node.js
 
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
 
Especificação de plataforma DaaS para laboratórios de informática
Especificação de plataforma DaaS para laboratórios de informática Especificação de plataforma DaaS para laboratórios de informática
Especificação de plataforma DaaS para laboratórios de informática
 
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
 
Oracle T Opgsql
Oracle T OpgsqlOracle T Opgsql
Oracle T Opgsql
 
Drupal + Rex
Drupal + RexDrupal + Rex
Drupal + Rex
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Cloud computing & Spring Framework
Cloud computing & Spring FrameworkCloud computing & Spring Framework
Cloud computing & Spring Framework
 
Resolvendo problemas de performance em aplicações Delphi e bancos de dados
Resolvendo problemas de performance em aplicações Delphi e bancos de dadosResolvendo problemas de performance em aplicações Delphi e bancos de dados
Resolvendo problemas de performance em aplicações Delphi e bancos de dados
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
 

Destaque

3º simulado -_2012_estilo_enem_-_prova2
3º simulado -_2012_estilo_enem_-_prova23º simulado -_2012_estilo_enem_-_prova2
3º simulado -_2012_estilo_enem_-_prova2Eduardo Rocha
 
Trabajo de sistemas ofimáticos iii
Trabajo de sistemas ofimáticos iiiTrabajo de sistemas ofimáticos iii
Trabajo de sistemas ofimáticos iiidajeand3
 
Apresentação Multimídia - Unifesp - VP9
Apresentação Multimídia - Unifesp - VP9Apresentação Multimídia - Unifesp - VP9
Apresentação Multimídia - Unifesp - VP9Henrique Genovês
 
Traumatisimo en Pediatria
Traumatisimo en PediatriaTraumatisimo en Pediatria
Traumatisimo en Pediatriadrmbvs
 
iPad - Spielzeug oder Wunderwaffe
iPad - Spielzeug oder WunderwaffeiPad - Spielzeug oder Wunderwaffe
iPad - Spielzeug oder Wunderwaffejekel & team
 
Symetrix - plaquette étude de cas Innothera : formation médicale
Symetrix - plaquette étude de cas Innothera : formation médicaleSymetrix - plaquette étude de cas Innothera : formation médicale
Symetrix - plaquette étude de cas Innothera : formation médicaleSymetrix
 
Programme jifa 2014 14102013
Programme jifa 2014 14102013Programme jifa 2014 14102013
Programme jifa 2014 14102013sfa_angeiologie
 
Correção cirurgica de cia seio venoso, associado aneurisma do tronco pulmonar
Correção cirurgica de cia seio venoso, associado aneurisma do tronco pulmonarCorreção cirurgica de cia seio venoso, associado aneurisma do tronco pulmonar
Correção cirurgica de cia seio venoso, associado aneurisma do tronco pulmonarJoão Antônio Granzotti
 
Zfs Un Sistema De Ficheros Para El Futuro
Zfs   Un Sistema De Ficheros Para El FuturoZfs   Un Sistema De Ficheros Para El Futuro
Zfs Un Sistema De Ficheros Para El Futuroguest1f0bd6
 
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...Loopback.ORG
 
Novo Método para compressão de sinais de EMG usando JPEG2000
Novo Método para compressão de sinais de EMG usando JPEG2000Novo Método para compressão de sinais de EMG usando JPEG2000
Novo Método para compressão de sinais de EMG usando JPEG2000Marcus Chaffim
 
Meerwasserentsalzung
MeerwasserentsalzungMeerwasserentsalzung
Meerwasserentsalzungvtyj
 
5 ortesis en fracturas definitivo
5 ortesis en fracturas definitivo5 ortesis en fracturas definitivo
5 ortesis en fracturas definitivoSAMFYRE
 
Reseau francophone vasculaire v arfi
Reseau francophone vasculaire  v arfiReseau francophone vasculaire  v arfi
Reseau francophone vasculaire v arfisfa_angeiologie
 
3º simulado -_2012_estilo_enem_-_prova1
3º simulado -_2012_estilo_enem_-_prova13º simulado -_2012_estilo_enem_-_prova1
3º simulado -_2012_estilo_enem_-_prova1Eduardo Rocha
 
Eine Reise mit Google zu Google
Eine Reise mit Google zu GoogleEine Reise mit Google zu Google
Eine Reise mit Google zu GoogleRealizing Progress
 
PerspektivGewinn Präsentation
PerspektivGewinn PräsentationPerspektivGewinn Präsentation
PerspektivGewinn PräsentationGebhard Borck
 

Destaque (20)

3º simulado -_2012_estilo_enem_-_prova2
3º simulado -_2012_estilo_enem_-_prova23º simulado -_2012_estilo_enem_-_prova2
3º simulado -_2012_estilo_enem_-_prova2
 
Uhl 2010 10
Uhl 2010 10Uhl 2010 10
Uhl 2010 10
 
Trabajo de sistemas ofimáticos iii
Trabajo de sistemas ofimáticos iiiTrabajo de sistemas ofimáticos iii
Trabajo de sistemas ofimáticos iii
 
Apresentação Multimídia - Unifesp - VP9
Apresentação Multimídia - Unifesp - VP9Apresentação Multimídia - Unifesp - VP9
Apresentação Multimídia - Unifesp - VP9
 
Traumatisimo en Pediatria
Traumatisimo en PediatriaTraumatisimo en Pediatria
Traumatisimo en Pediatria
 
iPad - Spielzeug oder Wunderwaffe
iPad - Spielzeug oder WunderwaffeiPad - Spielzeug oder Wunderwaffe
iPad - Spielzeug oder Wunderwaffe
 
Symetrix - plaquette étude de cas Innothera : formation médicale
Symetrix - plaquette étude de cas Innothera : formation médicaleSymetrix - plaquette étude de cas Innothera : formation médicale
Symetrix - plaquette étude de cas Innothera : formation médicale
 
Programme jifa 2014 14102013
Programme jifa 2014 14102013Programme jifa 2014 14102013
Programme jifa 2014 14102013
 
Correção cirurgica de cia seio venoso, associado aneurisma do tronco pulmonar
Correção cirurgica de cia seio venoso, associado aneurisma do tronco pulmonarCorreção cirurgica de cia seio venoso, associado aneurisma do tronco pulmonar
Correção cirurgica de cia seio venoso, associado aneurisma do tronco pulmonar
 
bb_2011.pdf
bb_2011.pdfbb_2011.pdf
bb_2011.pdf
 
Zfs Un Sistema De Ficheros Para El Futuro
Zfs   Un Sistema De Ficheros Para El FuturoZfs   Un Sistema De Ficheros Para El Futuro
Zfs Un Sistema De Ficheros Para El Futuro
 
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
 
Novo Método para compressão de sinais de EMG usando JPEG2000
Novo Método para compressão de sinais de EMG usando JPEG2000Novo Método para compressão de sinais de EMG usando JPEG2000
Novo Método para compressão de sinais de EMG usando JPEG2000
 
Indesign
IndesignIndesign
Indesign
 
Meerwasserentsalzung
MeerwasserentsalzungMeerwasserentsalzung
Meerwasserentsalzung
 
5 ortesis en fracturas definitivo
5 ortesis en fracturas definitivo5 ortesis en fracturas definitivo
5 ortesis en fracturas definitivo
 
Reseau francophone vasculaire v arfi
Reseau francophone vasculaire  v arfiReseau francophone vasculaire  v arfi
Reseau francophone vasculaire v arfi
 
3º simulado -_2012_estilo_enem_-_prova1
3º simulado -_2012_estilo_enem_-_prova13º simulado -_2012_estilo_enem_-_prova1
3º simulado -_2012_estilo_enem_-_prova1
 
Eine Reise mit Google zu Google
Eine Reise mit Google zu GoogleEine Reise mit Google zu Google
Eine Reise mit Google zu Google
 
PerspektivGewinn Präsentation
PerspektivGewinn PräsentationPerspektivGewinn Präsentation
PerspektivGewinn Präsentation
 

Semelhante a Entendendo o paralelismo no SQL Server

Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasLeonardo Pedroso Costa
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014MySQL Brasil
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia J Chaves Silva
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...João Gabriel Lima
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftAmazon Web Services LATAM
 
SQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleSQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleFlávio Farias
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangElaine Naomi
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olapFlavia Martins Bispo
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olapFernando Palma
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Amazon Web Services LATAM
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018Renato Groff
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Renato Groff
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6MySQL Brasil
 

Semelhante a Entendendo o paralelismo no SQL Server (20)

Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferenças
 
XML-RPC.pdf
XML-RPC.pdfXML-RPC.pdf
XML-RPC.pdf
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia
 
NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
 
SQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleSQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x Oracle
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e Erlang
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6
 

Mais de Luciano Moreira

Apresentando o Azure DocumentDB
Apresentando o Azure DocumentDBApresentando o Azure DocumentDB
Apresentando o Azure DocumentDBLuciano Moreira
 
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
 
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOMANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOLuciano Moreira
 
SQLServerDF XII - Wait Types
SQLServerDF XII - Wait TypesSQLServerDF XII - Wait Types
SQLServerDF XII - Wait TypesLuciano Moreira
 
SQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsSQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsLuciano Moreira
 
Confiabilidade de pacotes no SSIS
Confiabilidade de pacotes no SSISConfiabilidade de pacotes no SSIS
Confiabilidade de pacotes no SSISLuciano Moreira
 

Mais de Luciano Moreira (7)

Apresentando o Azure DocumentDB
Apresentando o Azure DocumentDBApresentando o Azure DocumentDB
Apresentando o Azure DocumentDB
 
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
 
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOMANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
 
SQLInternalOps - SQLOS
SQLInternalOps - SQLOSSQLInternalOps - SQLOS
SQLInternalOps - SQLOS
 
SQLServerDF XII - Wait Types
SQLServerDF XII - Wait TypesSQLServerDF XII - Wait Types
SQLServerDF XII - Wait Types
 
SQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsSQLServerDF XIII - xEvents
SQLServerDF XIII - xEvents
 
Confiabilidade de pacotes no SSIS
Confiabilidade de pacotes no SSISConfiabilidade de pacotes no SSIS
Confiabilidade de pacotes no SSIS
 

Entendendo o paralelismo no SQL Server

  • 1. SQL Saturday #325 Entendendo paralelismo no SQL Server Luciano Moreira luciano.moreira@srnimbus.com.br http://luticm.blogspot.com
  • 2. Quem sou?  Luciano Moreira {LUTI}  Hepta, Microsoft, Nimbus e agora Sicoob/Nimbus  MC<xyz>, mas não MCM  De MCM wannabe para database geek  Roadmap: SQL Server, DB2, Oracle, …  MVP desde Julho/2010  PASS Chapter Leader - SQLServerDF 2 |
  • 4. Agenda  Paralelismo  Planos paralelos  Query optimizer e paralelismo  SQL Server waits e 100% de CPU  Conclusão  Referência 4 |
  • 5. Paralelismo  Assunto que dá até briga em bar!  MAXDOP = 1 para OLTP  OLTP É OLTP!  MAXDOP = 0 e deixa o SQL Server se virar  CXPACKET é o pior wait type do SQL Server!  Servidor com CPU em 100% é culpa do paralelismo 5 |
  • 6. Paralelismo  “Parallelism: Exploiting concurrency in a program with the goal of solving a problem in less time”  O que não significa que você vai usar menos recursos para isso  Máquinas com cada vez mais cores disponíveis para processamento 6 |
  • 7. Planos paralelos  Operadores de exchange:  Gather Stream  Repartition Stream  Distribute Stream  Marca limites entre zonas do plano paralelo  Pode preservar a ordem de execução (merge exchange) 7 |
  • 8. Planos paralelos  Thread 0 = coordinator thread  Aguarda o fim da execução do plano  Zonas paralelas dentro de um plano 8 |
  • 9. Planos paralelos  Produtores e consumidores executam independentemente em threads diferentes  Produtores preenchem pacotes e enviam para os consumidores através de CXPORT e CXPIPE  Preenche buffers com registros  Class eXchange PACKET (CXPACKET)  “Occurs when trying to synchronize the query processor exchange iterator. You may consider lowering the degree of parallelism if contention on this wait type becomes a problem.” 9 |
  • 11. Query optimizer e paralelismo  O SQL Server trabalha com fases de otimização para chegar a um plano bom o suficiente  Complexidade do otimização é exponencial, então exploração não é infinita  Árvore com custo do plano de execução  Utiliza estatísticas para fazer estimativas de registros e custo 11 |
  • 12. Query optimizer e paralelismo  Estatísticas são muito importantes  200 passos do histograma e densidade podem não ser suficientes  MAX DEGREE OF PARALLELISM  COST THRESHOLD FOR PARALLELISM  “Estimated DOP is half the available logical processors at compile time” 12 |
  • 13. Query optimizer e planos paralelos DEMO
  • 14. SQL Server waits e latches  CXPACKET  SOS_SCHEDULER_YIELD  Latches  ACCESS_METHODS_DATASET_PARENT  ACCESS_METHODS_SCAN_RANGE_GENERATOR 14 |
  • 15. 100% CPU e CXPACKET DEMO
  • 16. Conclusão  Paralelismo não é uma entidade do mal!  Cuidado com paralelismo em excesso  Cost threshold atual é baixo para a maioria dos ambientes  Não recomendo MAXDOP = 1  Existem muitos outros detalhes e “edge cases”  SQLSat #361?? 16 |
  • 17. Referências  Paul White  http://sqlblog.com/blogs/paul_white/  Adam Machanic  http://sqlblog.com/blogs/adam_machanic/  Fabiano Amorim  http://blogfabiano.com/ 17 |
  • 18. Dúvidas? 18 | 26/11/2011 |
  • 19. Obrigado  luciano.moreira@srnimbus.com.br  http://luticm.blogspot.com  @luticm 19

Notas do Editor

  1. Contexto de execução é serial