Inquiridor
Problemas de performance utilizando a clausula "Select Top 1"

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 !!!
Todas as Respostas
-
-
-
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
-
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
-
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
-
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 !