none
Aplicativo Otimizador de Queries RRS feed

  • Pergunta

  • Pessoal, um amigo comentou que existem programas que otimizam queries. Vocês sabem onde posso encontrar? 

    Por exemplo, tenho algumas queries que demoram muito. Tentei melhorará-las após a análise do plano de execução, só que não consigo entender direito como o plano funciona, por isso gostaria de saber se esse tipo de aplicativo realmente existe.

    []´s
    Obrigado,
    Denison Soares
    • Movido Gustavo Maia Aguiar quarta-feira, 18 de agosto de 2010 21:03 (De:SQL Server - Desenvolvimento Geral)
    terça-feira, 17 de agosto de 2010 19:28

Respostas

  • Denison,

    Legal, eu tinha certeza que o Tunning Advisor seria a solução simples e nativa do próprio SQL Server, capaz de resolver seu problema.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    • Marcado como Resposta Denison Soares quinta-feira, 31 de março de 2011 14:01
    quarta-feira, 18 de agosto de 2010 14:03
    Moderador

Todas as Respostas

  • Denison,

    Programa para otimizar querys, por acaso ele não estava falando de Database Engine Tunning Advisor?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    terça-feira, 17 de agosto de 2010 19:37
    Moderador
  • Tunning Advisor é muito bom e salva a pele quando falta concentração. E pode trazer muitas boas sugestões que as vezes não conseguimos identificar.

    Só tome cuidado para ele não fazer nada automaticamente.


    http://ricardomura.spaces.live.com
    terça-feira, 17 de agosto de 2010 19:42
  • Eu Procuro algo do Tipo => Botão "Otimizar"  - A query seria remontada (Join's, Posição dos Campos no Where, Etc, sem alterar o resultado) e o retorno seria mais rápido. Talvez não exista...Rs

    Se existir alguma outra forma, e se der pra compartilhar os procedimentos básicos, eu agradeço Galvão =)

     

    A Query que está me incomodando com sua lentidão é esta:

     

    SELECT AB1_X_ATDN,

           AB1_NRCHAM,

           AB1_EMISSA,

           SA1.A1_NOME,

           AB1_X_TPAT,

           AB1_CODTEC,

           Isnull(AA1_NOMTEC, '')NOMTEC,

           AB6_STATUS,

           AB1_XFON3             OSMOBILE,

           LEFT(AA3_CEP, 3)      PREFIXO_CEP,

           AB6_NUMOS,

      MAX(AB9_DTFIM)AB9_DTFIM

    FROM   dbo.AB1010 AB1

           INNER JOIN dbo.SA1010 SA1

             ON AB1.AB1_CODCLI = SA1.A1_COD

                AND AB1.AB1_LOJA = SA1.A1_LOJA

           LEFT JOIN dbo.AA1010 AA1

             ON AB1_CODTEC = AA1_CODTEC    

                AND AA1.D_E_L_E_T_ = ''            

           INNER JOIN dbo.AB2010 AB2

             ON AB1.AB1_FILIAL = AB2.AB2_FILIAL

                AND AB1.AB1_NRCHAM = AB2.AB2_NRCHAM

           INNER JOIN dbo.AA3010 AA3

             ON AB2.AB2_CODCLI = AA3.AA3_CODCLI

                AND AB2.AB2_LOJA = AA3.AA3_LOJA

                AND AB2.AB2_NUMSER = AA3.AA3_NUMSER

                AND AB2.AB2_CODPRO = AA3.AA3_CODPRO

          LEFT JOIN dbo.AB7010 AB7

             ON AB2.AB2_FILIAL = AB7.AB7_FILIAL

                AND AB2.AB2_NUMOS = AB7.AB7_NUMOS + AB7_ITEM

                AND AB7.D_E_L_E_T_ = ''

           LEFT JOIN dbo.AB6010 AB6

             ON AB7.AB7_FILIAL = AB6.AB6_FILIAL

                AND AB7.AB7_NUMOS = AB6.AB6_NUMOS

                AND AB6.D_E_L_E_T_ = ''  

      LEFT JOIN dbo.AB9010 AB9

    ON AB7.AB7_FILIAL = AB9.AB9_FILIAL

    AND AB7.AB7_NUMOS+AB7.AB7_ITEM = AB9.AB9_NUMOS

    AND AB9.D_E_L_E_T_ = ''

    WHERE  AB1.AB1_FILIAL = '01'

           AND AB1.AB1_EMISSA >= '20100101'         

      AND AB1.AB1_CODTEC NOT IN (' ','FCA')

           AND AB1.D_E_L_E_T_ = ''

           AND AB2.D_E_L_E_T_ = ''

           AND SA1.D_E_L_E_T_ = ''

           AND AA3.D_E_L_E_T_ = '' 

    GROUP BY AB1_X_ATDN,

           AB1_NRCHAM,

           AB1_EMISSA,

           SA1.A1_NOME,

           AB1_X_TPAT,

           AB1_CODTEC,

           AA1_NOMTEC,

           AB6_STATUS,

           AB1_XFON3 ,

           LEFT(AA3_CEP, 3),

           AB6_NUMOS

     

    []´s

    Obrigado,

    Denison Soares

     

     

    terça-feira, 17 de agosto de 2010 19:45
  • Denison,

    Talvez seja alguma ferramenta da Red-Gate.com ou Apex.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    terça-feira, 17 de agosto de 2010 19:46
    Moderador
  • Legal !!!

    Galvão, salvei minha query num arquivo, abri pelo Tuning Advisor e executei a análise. Apareceram algumas recomendações de criação de Estatísticas e Índices. Criei apenas as estatísticas e DEU CERTO!! FICOU SUPER RÁPIDO !!! De 2 minutos e alguns segundos, foi pra menos de 10 segundos !!! Executei o relatório pelo sistema com parâmetros diferentes e realmente ficou bem rápido!

    Obrigado !!

    []´s

    Denison Soares

    terça-feira, 17 de agosto de 2010 20:14
  • Legal !!!

    Galvão, salvei minha query num arquivo, abri pelo Tuning Advisor e executei a análise. Apareceram algumas recomendações de criação de Estatísticas e Índices. Criei apenas as estatísticas e DEU CERTO!! FICOU SUPER RÁPIDO !!! De 2 minutos e alguns segundos, foi pra menos de 10 segundos !!! Executei o relatório pelo sistema com parâmetros diferentes e realmente ficou bem rápido!

    Obrigado !!

    []´s

    Denison Soares

    Também agradeço ao comentário do Ricardo. Valeu Pessoal !!
    terça-feira, 17 de agosto de 2010 20:15
  • Denison,

    Legal, eu tinha certeza que o Tunning Advisor seria a solução simples e nativa do próprio SQL Server, capaz de resolver seu problema.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    • Marcado como Resposta Denison Soares quinta-feira, 31 de março de 2011 14:01
    quarta-feira, 18 de agosto de 2010 14:03
    Moderador
  • Denison.

    Você pode usar o Toad.

    http://ultradownloads.uol.com.br/download/Toad-for-SQL-Server/

     

    Abs

    quarta-feira, 25 de agosto de 2010 13:54
  • Denison,

    Cara esse eu não conhecia, você já utilizou?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    quarta-feira, 25 de agosto de 2010 14:16
    Moderador
  •  Júnior, ainda não utilizei. 

     

    Obrigado pelas ajudas de sempre!!

     

    []´s

    Denison Soares

    quinta-feira, 31 de março de 2011 14:01