SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
Otimizando Consulta com SQL


1. Procure NÃO utilizar o ‘*’ para retornar todos os campos, pois isso traz para a
   estação cliente dados às vezes desnecessários.

   A busca por todos atributos produz um trabalho adicional, já que será necessário
   ler a página de dados de cada linha para obter os valores dos atributos que não
   fazem parte do índice, caso o mesmo exista.

   Exemplo:

          SELECT * FROM TABELA1 - Procure não fazer isso e sim:

          SELECT CAMPO1, CAMPO2 , CAMPO3 FROM TABELA1


2. Evite também instruções muito grandes. Procure quebrá-las em várias instruções
   e ligue os resultados com o comando UNION.

3. Cuidado com os operadores lógicos AND na cláusula WHERE, pois para cada
   AND a mais que é colocado, todo conjunto de dados que será retornado tem que
   ser filtrado. Isto consome muito processamento, às vezes desnecessário.

4. Sempre que possível procure utilizar a cláusula TOP n para indicar qual a
   quantidade de registro. Saber de antemão quantos registros a query tem que
   retornar ajuda o SQL Server a fazer um plano de execução da instrução menor e
   isso diminui o tempo de resposta. Por exemplo, se quisermos somente os 5
   primeiros registros que atendem a uma condição:

   SELECT TOP 5 CAMPO1 FROM TABELA1 WHERE CAMPO1 = 2

5. Não abuse muito do operador LIKE. Ele é ótimo para consultas, mas devemos
   procurar não colocar % antes e depois.

   - Se houver como, evite isto:

   SELECT NOME FROM TABELA1 WHERE NOME LIKE ‘%A%’


6. Evite colocar muitos campos na cláusula ORDER BY, pois para cada campo
   adicional, temos uma re-ordenação interna do conjunto de dados retornado.Por
   exemplo:

   SELECT CAMPO1, CAMPO2, CAMPO3 FROM TABELA1
   ORDER BY CAMPO1 , CAMPO2 , CAMPO3




                                      Analista de Sistemas/DESUN/DSNW/CIC - Eduardo Matias
Cláusula supracitada percebeu-se que ela representa um overhead adicional na
   consulta, degradando o desempenho da mesma.

   Procure usar quando possível:

   SELECT CAMPO1, CAMPO2, CAMPO3 FROM TABELA1
   ORDER BY CAMPO1

7. Ordem dos atributos do índice

   Esta ordem deve ser observada, pois o índice só é útil se os critérios da consulta
   correspondem aos atributos localizados mais à esquerda na chave de índice.

   Um exemplo disso é uma lista telefônica, ou seja, ela está organizada em ordem
   alfabética composta de sobrenome e nome. Para localizar um número
   conhecendo-se o sobrenome basta seguir a ordem alfabética para encontrar o
   número desejado. No caso de tentar localizar o número conhecendo-se apenas o
   nome, será necessário percorrer a lista, pois o nome poderá estar em qualquer
   página da lista.

8. Quando for usar JOINS, procure sempre manter a tabela que possui mais
   registro à esquerda da comparação.

9. Na cláusula WHERE, liste primeiramente, as condições mais restritivas. As
   condições mais restritivas geram um menor número de linhas de dados.

10. Limite a quantidade de colunas incluídas em uma cláusula GROUP BY.

11. Cláusula DISTINCT

   A cláusula DISTINCT provoca um overhead adicional na consulta,
   conseqüentemente degrada o desempenho da mesma. Por isso, deve-se utilizá-la
   com extremo cuidado, apenas em casos onde realmente seja necessário.

12. Cláusula HAVING deve ser evitada, pois acredita-se que a mesma provoca um
    overhead adicional, aumentando o tempo de execução da pesquisa.

13. Join X Subconsulta

   Se puder escolher entre a utilização de uma JOIN ou de uma subconsulta, é
   interessante testar os dois métodos, pois o desempenho de cada um desses
   métodos pode variar para determinada consulta.




                                      Analista de Sistemas/DESUN/DSNW/CIC - Eduardo Matias
14. Cláusula Not In X Cláusulas Not Exists / Left Outer Join

   A utilização da cláusula NOT IN numa consulta acarreta um loop aninhado,
   resultando em um baixo desempenho da consulta. Por isso, deve-se utilizar em
   seu lugar uma das seguintes cláusulas: NOT EXISTS ou LEFT OUTER JOIN
   checando a condição NULL.

Obs: Estas diretrizes não devem ser consideradas inquestionáveis.
Experimente, execute teste, enfim, cheque você mesmo às conclusões que se
referem à otimização do funcionamento dos procedimentos.




                                     Analista de Sistemas/DESUN/DSNW/CIC - Eduardo Matias

Mais conteúdo relacionado

Mais procurados

Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
Charleston Anjos
 
Sebenta Ling Prog Cptig MóDulo Iii Carla
Sebenta Ling Prog Cptig   MóDulo Iii CarlaSebenta Ling Prog Cptig   MóDulo Iii Carla
Sebenta Ling Prog Cptig MóDulo Iii Carla
Carla Silva
 

Mais procurados (20)

Fundamentos de SQL - Parte 2 de 8
Fundamentos de SQL - Parte 2 de 8Fundamentos de SQL - Parte 2 de 8
Fundamentos de SQL - Parte 2 de 8
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetição
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
 
Aula 300309
Aula 300309Aula 300309
Aula 300309
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8
 
JAVA - Controle de programa
JAVA - Controle de programaJAVA - Controle de programa
JAVA - Controle de programa
 
Sebenta Ling Prog Cptig MóDulo Iii Carla
Sebenta Ling Prog Cptig   MóDulo Iii CarlaSebenta Ling Prog Cptig   MóDulo Iii Carla
Sebenta Ling Prog Cptig MóDulo Iii Carla
 
Algoritmos 01 - Semana 08 - Estruturas de repetição
Algoritmos 01 - Semana 08 - Estruturas de repetiçãoAlgoritmos 01 - Semana 08 - Estruturas de repetição
Algoritmos 01 - Semana 08 - Estruturas de repetição
 
Java Básico :: Exceções
Java Básico :: ExceçõesJava Básico :: Exceções
Java Básico :: Exceções
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
 
Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8
 
(03) entenda - spss
(03)   entenda - spss(03)   entenda - spss
(03) entenda - spss
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Tratamento de exceções com PHP
Tratamento de exceções com PHPTratamento de exceções com PHP
Tratamento de exceções com PHP
 
ICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de Repetição
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
 

Semelhante a Sql otimizando consulta com sql (11)

MySQL Query Optimization
MySQL Query OptimizationMySQL Query Optimization
MySQL Query Optimization
 
Base de Dados Consultas Aninhadas.pptx
Base de Dados Consultas Aninhadas.pptxBase de Dados Consultas Aninhadas.pptx
Base de Dados Consultas Aninhadas.pptx
 
Apostila basica sql
Apostila basica sqlApostila basica sql
Apostila basica sql
 
Db2
Db2Db2
Db2
 
Sql apostila construcao de comandos
Sql   apostila construcao de comandosSql   apostila construcao de comandos
Sql apostila construcao de comandos
 
3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics
 
Perfomance em MySQL
Perfomance em MySQLPerfomance em MySQL
Perfomance em MySQL
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Alto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQLAlto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQL
 
Sql linguagem
Sql linguagemSql linguagem
Sql linguagem
 
Melhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlMelhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySql
 

Último

SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
rosenilrucks
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
LeloIurk1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 

Último (20)

SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptxProjeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 

Sql otimizando consulta com sql

  • 1. Otimizando Consulta com SQL 1. Procure NÃO utilizar o ‘*’ para retornar todos os campos, pois isso traz para a estação cliente dados às vezes desnecessários. A busca por todos atributos produz um trabalho adicional, já que será necessário ler a página de dados de cada linha para obter os valores dos atributos que não fazem parte do índice, caso o mesmo exista. Exemplo: SELECT * FROM TABELA1 - Procure não fazer isso e sim: SELECT CAMPO1, CAMPO2 , CAMPO3 FROM TABELA1 2. Evite também instruções muito grandes. Procure quebrá-las em várias instruções e ligue os resultados com o comando UNION. 3. Cuidado com os operadores lógicos AND na cláusula WHERE, pois para cada AND a mais que é colocado, todo conjunto de dados que será retornado tem que ser filtrado. Isto consome muito processamento, às vezes desnecessário. 4. Sempre que possível procure utilizar a cláusula TOP n para indicar qual a quantidade de registro. Saber de antemão quantos registros a query tem que retornar ajuda o SQL Server a fazer um plano de execução da instrução menor e isso diminui o tempo de resposta. Por exemplo, se quisermos somente os 5 primeiros registros que atendem a uma condição: SELECT TOP 5 CAMPO1 FROM TABELA1 WHERE CAMPO1 = 2 5. Não abuse muito do operador LIKE. Ele é ótimo para consultas, mas devemos procurar não colocar % antes e depois. - Se houver como, evite isto: SELECT NOME FROM TABELA1 WHERE NOME LIKE ‘%A%’ 6. Evite colocar muitos campos na cláusula ORDER BY, pois para cada campo adicional, temos uma re-ordenação interna do conjunto de dados retornado.Por exemplo: SELECT CAMPO1, CAMPO2, CAMPO3 FROM TABELA1 ORDER BY CAMPO1 , CAMPO2 , CAMPO3 Analista de Sistemas/DESUN/DSNW/CIC - Eduardo Matias
  • 2. Cláusula supracitada percebeu-se que ela representa um overhead adicional na consulta, degradando o desempenho da mesma. Procure usar quando possível: SELECT CAMPO1, CAMPO2, CAMPO3 FROM TABELA1 ORDER BY CAMPO1 7. Ordem dos atributos do índice Esta ordem deve ser observada, pois o índice só é útil se os critérios da consulta correspondem aos atributos localizados mais à esquerda na chave de índice. Um exemplo disso é uma lista telefônica, ou seja, ela está organizada em ordem alfabética composta de sobrenome e nome. Para localizar um número conhecendo-se o sobrenome basta seguir a ordem alfabética para encontrar o número desejado. No caso de tentar localizar o número conhecendo-se apenas o nome, será necessário percorrer a lista, pois o nome poderá estar em qualquer página da lista. 8. Quando for usar JOINS, procure sempre manter a tabela que possui mais registro à esquerda da comparação. 9. Na cláusula WHERE, liste primeiramente, as condições mais restritivas. As condições mais restritivas geram um menor número de linhas de dados. 10. Limite a quantidade de colunas incluídas em uma cláusula GROUP BY. 11. Cláusula DISTINCT A cláusula DISTINCT provoca um overhead adicional na consulta, conseqüentemente degrada o desempenho da mesma. Por isso, deve-se utilizá-la com extremo cuidado, apenas em casos onde realmente seja necessário. 12. Cláusula HAVING deve ser evitada, pois acredita-se que a mesma provoca um overhead adicional, aumentando o tempo de execução da pesquisa. 13. Join X Subconsulta Se puder escolher entre a utilização de uma JOIN ou de uma subconsulta, é interessante testar os dois métodos, pois o desempenho de cada um desses métodos pode variar para determinada consulta. Analista de Sistemas/DESUN/DSNW/CIC - Eduardo Matias
  • 3. 14. Cláusula Not In X Cláusulas Not Exists / Left Outer Join A utilização da cláusula NOT IN numa consulta acarreta um loop aninhado, resultando em um baixo desempenho da consulta. Por isso, deve-se utilizar em seu lugar uma das seguintes cláusulas: NOT EXISTS ou LEFT OUTER JOIN checando a condição NULL. Obs: Estas diretrizes não devem ser consideradas inquestionáveis. Experimente, execute teste, enfim, cheque você mesmo às conclusões que se referem à otimização do funcionamento dos procedimentos. Analista de Sistemas/DESUN/DSNW/CIC - Eduardo Matias