SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
SQL TUNING
REFERÊNCIAS
• https://docs.oracle.com/database/121/
• https://docs.oracle.com/database/121/TGSQL/tgsql_intro.htm#TGSQL112
• https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CN
CPT721
• https://docs.oracle.com/cd/B28359_01/server.111/b32024/partition.htm
• https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_5012.
htm#SQLRF01209
PARTIÇÕES
SUGESTÕES PARA PARTIÇÕES EM
TABELAS
• Quando Utilizar
• > 2 GB de espaço físico
• Tabelas de Histórico
• Armazenamento Distribuído
BENEFÍCIOS DO
PARTICIONAMENTO
• Performance
• Prunning – Fazer uma operação SQL utilizando a partição ao invés de full table
scan
• Partition-wise Join – Múltiplas tabelas utilizando a partição ao fazer o join por
igualdade entre as colunas das respectivas partições
• Gerenciamento
• O gerenciamento fica mais simples ao dividiros dados em diversos “pedaços”
(partições)
• Disponibilidade
• Partições independentes
“Dividir para conquistar”
ESTRATÉGIAS DE
PARTICIONAMENTO
• Range
• “Mapeia os dados para partições com base em intervalos de valores da chave de particionamento
que se estabelece para cada partição.”
• Hash
• “Mapeia os dados para partições com base em um algoritmo de hash que a Oracle aplica na
chave do particionamento. Esse algoritmo tenta manter todas as partições com um tamanho
aproximado.”
• Geralmente utilizado para casos em que dados não são históricos e/ou não possuem chave bem
definida.
• Não é possível alterar o algoritmo.
• List
• “Permite controlar explicitamente como as linhas da tabela são mapeadas na partição,
especificando uma lista de valores discretos.”
• Vantagem: agrupamento de dados como partição (Exemplo: Regiões)
SINGLE-LEVEL PARTITIONING
COMPOSITE PARTITIONING
ÍNDICES
• Definição
• “[...] Índices são estruturas opcionais que as vezes aceleram o acesso a dados.[...]”
• “[...] São objetos logicamente e fisicamente independentes dos dados dos objetos aos
quais estão associados. [...]”
• Casos de Utilização
• Colunas utilizadas frequentementecomo filtro de busca e que representam uma
porcentagem pequena em relação ao total de linhas de uma tabela.
• Constraints de integridade de dados. Dessa forma o lock em uma tabela inteira não é
necessário ao fazer update ou delete em uma tabela pai.
• Casos específicos em Unique Constraints para especificar manualmente algumaopção.
• Cuidados
• A presença de vários índices em uma tabela afeta a performance em operações de
manipulação de dados (DML), pois os índices também são atualizados.
PROPRIEDADES DOS ÍNDICES
• Utilizável (default)
• Se for configurado para não ser utilizado, as operações DML não mantém o
índice atualizado e este é ignorado pelo otimizador do Oracle ao executar as
operações.
• Visível (default)
• Se for configurado como invisível, as operações DML atualizam o índice para
uso posterior. O otimizadortambém ignora nas operações.
CRIAÇÃO DE ÍNDICES
• “Primary and unique keys automatically have indexes, but you might want to create
an index on a foreign key.”
• Syntax
CREATE INDEX index_name
ON table_name (column_1, column_N);
TIPOS DE ÍNDICE
• B-tree
• Index-organized tables
• Reverse key
• Descending
• B-tree cluster
• Bitmap & Bitmap Join
• Function-based
• Application domain
BÔNUS
• CTE - Common Table Expression

Mais conteúdo relacionado

Semelhante a SQL Tuning Intro

Oracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoOracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoRodrigo Almeida
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura OraclePablo Garcia
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016Roberto Fonseca
 
SQL Server – Performance e Tunning
SQL Server – Performance e TunningSQL Server – Performance e Tunning
SQL Server – Performance e Tunningpt_programar
 
MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor MySQL Brasil
 
AWS Redshift Primer
AWS Redshift PrimerAWS Redshift Primer
AWS Redshift PrimerMateus Aubin
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core DuoSamuel Bié
 
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhoresRodrigo Crespi
 
Oracle Exadata em 10 minutos
Oracle Exadata em 10 minutosOracle Exadata em 10 minutos
Oracle Exadata em 10 minutosRodrigo Almeida
 
Oracle Exadata
Oracle ExadataOracle Exadata
Oracle ExadataiMasters
 
Performance Sql Server
Performance Sql ServerPerformance Sql Server
Performance Sql Serverjarlei
 
Oracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de DadosOracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de DadosDaniela Macedo
 
Exadata - O Todo é maior que a soma das Partes
Exadata - O Todo é maior que a soma das PartesExadata - O Todo é maior que a soma das Partes
Exadata - O Todo é maior que a soma das PartesLuis Marques
 
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFabio Telles Rodriguez
 

Semelhante a SQL Tuning Intro (20)

MySQL - visão geral
MySQL - visão geralMySQL - visão geral
MySQL - visão geral
 
Oracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoOracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & Migração
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura Oracle
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016
 
Otimizando a performance com in-memory no SQL 2016
Otimizando a performance com in-memory no SQL 2016Otimizando a performance com in-memory no SQL 2016
Otimizando a performance com in-memory no SQL 2016
 
SQL Server – Performance e Tunning
SQL Server – Performance e TunningSQL Server – Performance e Tunning
SQL Server – Performance e Tunning
 
MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor
 
AWS Redshift Primer
AWS Redshift PrimerAWS Redshift Primer
AWS Redshift Primer
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core Duo
 
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores
 
Oracle Exadata em 10 minutos
Oracle Exadata em 10 minutosOracle Exadata em 10 minutos
Oracle Exadata em 10 minutos
 
Oracle Exadata
Oracle ExadataOracle Exadata
Oracle Exadata
 
Performance Sql Server
Performance Sql ServerPerformance Sql Server
Performance Sql Server
 
Oracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de DadosOracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de Dados
 
Exadata - O Todo é maior que a soma das Partes
Exadata - O Todo é maior que a soma das PartesExadata - O Todo é maior que a soma das Partes
Exadata - O Todo é maior que a soma das Partes
 
pgDay Campinas – 2015
pgDay Campinas – 2015pgDay Campinas – 2015
pgDay Campinas – 2015
 
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
 
Novidades do SQL Server 2008
Novidades do SQL Server 2008Novidades do SQL Server 2008
Novidades do SQL Server 2008
 

SQL Tuning Intro

  • 2. REFERÊNCIAS • https://docs.oracle.com/database/121/ • https://docs.oracle.com/database/121/TGSQL/tgsql_intro.htm#TGSQL112 • https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CN CPT721 • https://docs.oracle.com/cd/B28359_01/server.111/b32024/partition.htm • https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_5012. htm#SQLRF01209
  • 4. SUGESTÕES PARA PARTIÇÕES EM TABELAS • Quando Utilizar • > 2 GB de espaço físico • Tabelas de Histórico • Armazenamento Distribuído
  • 5. BENEFÍCIOS DO PARTICIONAMENTO • Performance • Prunning – Fazer uma operação SQL utilizando a partição ao invés de full table scan • Partition-wise Join – Múltiplas tabelas utilizando a partição ao fazer o join por igualdade entre as colunas das respectivas partições • Gerenciamento • O gerenciamento fica mais simples ao dividiros dados em diversos “pedaços” (partições) • Disponibilidade • Partições independentes “Dividir para conquistar”
  • 6. ESTRATÉGIAS DE PARTICIONAMENTO • Range • “Mapeia os dados para partições com base em intervalos de valores da chave de particionamento que se estabelece para cada partição.” • Hash • “Mapeia os dados para partições com base em um algoritmo de hash que a Oracle aplica na chave do particionamento. Esse algoritmo tenta manter todas as partições com um tamanho aproximado.” • Geralmente utilizado para casos em que dados não são históricos e/ou não possuem chave bem definida. • Não é possível alterar o algoritmo. • List • “Permite controlar explicitamente como as linhas da tabela são mapeadas na partição, especificando uma lista de valores discretos.” • Vantagem: agrupamento de dados como partição (Exemplo: Regiões)
  • 9. ÍNDICES • Definição • “[...] Índices são estruturas opcionais que as vezes aceleram o acesso a dados.[...]” • “[...] São objetos logicamente e fisicamente independentes dos dados dos objetos aos quais estão associados. [...]” • Casos de Utilização • Colunas utilizadas frequentementecomo filtro de busca e que representam uma porcentagem pequena em relação ao total de linhas de uma tabela. • Constraints de integridade de dados. Dessa forma o lock em uma tabela inteira não é necessário ao fazer update ou delete em uma tabela pai. • Casos específicos em Unique Constraints para especificar manualmente algumaopção. • Cuidados • A presença de vários índices em uma tabela afeta a performance em operações de manipulação de dados (DML), pois os índices também são atualizados.
  • 10. PROPRIEDADES DOS ÍNDICES • Utilizável (default) • Se for configurado para não ser utilizado, as operações DML não mantém o índice atualizado e este é ignorado pelo otimizador do Oracle ao executar as operações. • Visível (default) • Se for configurado como invisível, as operações DML atualizam o índice para uso posterior. O otimizadortambém ignora nas operações.
  • 11. CRIAÇÃO DE ÍNDICES • “Primary and unique keys automatically have indexes, but you might want to create an index on a foreign key.” • Syntax CREATE INDEX index_name ON table_name (column_1, column_N);
  • 12. TIPOS DE ÍNDICE • B-tree • Index-organized tables • Reverse key • Descending • B-tree cluster • Bitmap & Bitmap Join • Function-based • Application domain
  • 13. BÔNUS • CTE - Common Table Expression