Consulta em sql muito lenta.
Olá pessoal, estou com uma consulta em sql mas ela fica muito lenta para ser executada, vou passar a baixo se algum tiver alguma idéia agradeço.
select distinct TB1.codigocli,TB1.codigonome,TB1.codigoserv,TB2.descricaotxt,TB3.codigo from
ClienteNome TB1 inner join Nometxt TB2 on TB1.codigonome = TB2.codigonome
left join tmplj TB3 on TB3.descricao like '%'+(RTRIM(TB2.descricaotxt))+'%'
where TB3.descricao is not null and TB1.codigoserv = 1
order by TB3.codigo Muito Obrigado.
ClienteNome TB1 inner join Nometxt TB2 on TB1.codigonome = TB2.codigonome
left join tmplj TB3 on TB3.descricao like '%'+(RTRIM(TB2.descricaotxt))+'%'
where TB3.descricao is not null and TB1.codigoserv = 1
order by TB3.codigo Muito Obrigado.
Marcelo
Curtidas 0
Respostas
Eriley Barbosa
26/07/2010
Tente primeiro fazer a ligação entre TB2 e TB3 e depois passe o like como condição:
select
distinct TB1.codigocli,TB1.codigonome,TB1.codigoserv,TB2.descricaotxt,TB3.codigo
from
ClienteNome TB1 inner join Nometxt TB2 on TB1.codigonome = TB2.codigonome
left join tmplj TB3 on --Faça a qui a ligação entre TB2 e TB3 where TB3.descricao is not null and TB1.codigoserv = 1 and TB3.descricao like '%'+(RTRIM(TB2.descricaotxt))+'%'
order by TB3.codigo Atenciosamente Eriley
ClienteNome TB1 inner join Nometxt TB2 on TB1.codigonome = TB2.codigonome
left join tmplj TB3 on --Faça a qui a ligação entre TB2 e TB3 where TB3.descricao is not null and TB1.codigoserv = 1 and TB3.descricao like '%'+(RTRIM(TB2.descricaotxt))+'%'
order by TB3.codigo Atenciosamente Eriley
GOSTEI 0
Marcelo
26/07/2010
Obrigado ERILEY pela atenção, mas esta TB3 ainda não tem relação com nenhuma tabela e relacionamento será feito se ela tiver alguma semelhança no like.
Obrigado.
GOSTEI 0
Rafael Reis
26/07/2010
Não sei qual a estrutura e regras de negócio do seu banco, mas acho que o ideal seria então normalizar o seu banco, ja pensou nessa possibilidade?
espero ter ajudado
GOSTEI 0
Eriley Barbosa
26/07/2010
Sugiro que crie uma relação, pois, a linha left join tmplj TB3 on TB3.descricao like '%'+(RTRIM(TB2.descricaotxt))+'%'
Causara um table scan e os indices mesmo se existirem serão ignorados. Atenciosamente Eriley
Causara um table scan e os indices mesmo se existirem serão ignorados. Atenciosamente Eriley
GOSTEI 0