Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SQL Tuning Intro

43 views

Published on

Apresentação de slides que utilizei para falar um pouco sobre alguns conceitos de banco de dados que podem nos ajudar muito no dia a dia. A apresentação foi realizada Papo Reto de outubro, evento mensal da Bluesoft.

Published in: Software
  • Be the first to comment

  • Be the first to like this

SQL Tuning Intro

  1. 1. SQL TUNING
  2. 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
  3. 3. PARTIÇÕES
  4. 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. 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. 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)
  7. 7. SINGLE-LEVEL PARTITIONING
  8. 8. COMPOSITE PARTITIONING
  9. 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. 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. 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. 12. TIPOS DE ÍNDICE • B-tree • Index-organized tables • Reverse key • Descending • B-tree cluster • Bitmap & Bitmap Join • Function-based • Application domain
  13. 13. BÔNUS • CTE - Common Table Expression

×