none
Problemas de performance utilizando a clausula "Select Top 1" RRS feed

  • Pergunta

  • Pessoal,

    Estou com um problema de performance ao utilizar a clausula Select Top 1.

    Quando executo meu select utilizando essa clausula a consulta é realizada em 3 minutos, ao tirar essa clausula o tempo cai para 23 segundos.

    Alguém ja enfrentou esse tipo de problema ???

    Existe uma alternativa para o uso de SELECT TOP ?

     

    Obrigado !!!

     

    quarta-feira, 19 de março de 2008 14:25

Todas as Respostas

  • crie um indice na coluna do order by do seu top.

     

    Abs;

     

    quarta-feira, 19 de março de 2008 15:31
  • Pelegrini,

     

    Existe algum índice nesta table?

     

     

    quarta-feira, 19 de março de 2008 16:42
  • Sim existe  índices na tabela.

     

    Estou fazendo alguns testes aqui.

    No meu WHERE quando comparo um campo com uma variavel ele não retorna todos os registros, demora mais de 1 minuto e nada...

    Where (a.Dt_Agnd >= @Dt_Ini )And (a.Dt_Agnd <= @Dt_Fin )

     

    Agora quando seto o valor hardcode a query executa em menos de 1 segundo.

    Where (a.Dt_Agnd >= '2007-03-19' ) And (a.Dt_Agnd <= '2007-03-19' )

     

    pode isso !

     

    Abraços

    quarta-feira, 19 de março de 2008 17:27
  • O SQL Server deve estar fazendo Scan ao utilizar as variáveis, tente forcar uma parametrização do utilizando a

    sp_ExecuteSQL para rodar o SQL ou então crie uma procedure que irá receber como parâmetros de entrada o valor dessas variáveis.

     

    O indice cluster vai influenciar no seu TOP 1 pois o TOP gera um order by.

     

    De uma olhada neste link http://www.50minutos.com.br/?p=177

     

    quarta-feira, 19 de março de 2008 20:39
  • Boa Noite,

     

    Primeiramente certifique-se de ter aplicado o Service Pack mais recente para evitarmos algum problema interno relacioando ao processamento de consultas que por ventura já tenha sido tratado.

     

    Os resultados usando a variável e o valor são os mesmos ? Pode ser que o Set Date Format esteja influenciando nesse comportamento ? E o código está encapsulado ou não dentro de uma SP ?

     

    [ ]s,

     

    Gustavo

     

    quarta-feira, 19 de março de 2008 22:48
  • Bom Dia Pessoal !

     

    Muito Obrigado pelas resposta foram de grande ajuda.

    Acredito que o meu servidor estava com algum problema (registro locado, algo desse tipo), pois depois de algum tempo tudo funcionou perfeitamente, com ou sem as variaveis.

     

    Ótimo artigo esse http://www.50minutos.com.br/?p=177,

    Vou ficar de olho para monitorar o Server a próxima vez que isso acontecer.

     

     

    Valeu galera !

    quinta-feira, 20 de março de 2008 13:58