AJUDA COM QUERY

MGALDINO 19/03/2012 14:46:02
#397523
Pessoal boa tarde,

Tenho uma duvida com SQL.
Estou com uma view chata aqui com a performance causando desespero no cliente.

Mais ou menos dessa forma esta minha query:

Select * from View Where Campo1 in ( 6 ) AND
campo3
IN (SELECT Campo4
FROM Tabela WHERE Codigo = 92031 AND data = to_date([ô]20120201[ô],[ô]YYYYMMDD[ô]) )
AND Outradata = TO_DATE([ô]20120210[ô],[ô]YYYYMMDD[ô])



Minha duvida como conseguiria que o SQL na mesma query executa-se essa parte do codigo
{
Select * from View Where Campo1 in ( 6 ) AND
campo3
IN (SELECT Campo4
FROM Tabela WHERE Codigo = 92031 AND data = to_date([ô]20120201[ô],[ô]YYYYMMDD[ô]) )
}

e depois com o resultado da query em cima essa parte.
{
AND Outradata = TO_DATE([ô]20120210[ô],[ô]YYYYMMDD[ô])
}

essa ultima data(Outradata) que causa a lentidão.

Lembrando não posso alterar nenhuma definição de base de dados índices,join nada dentro da view ou em tabelas.





JWCELYO 19/03/2012 15:47:21
#397537
você pode criar uma tabela temporária mas não sei se isso vai ajudar.

Select * #tmpView from View Where  Campo1 in ( 6 ) AND 
campo3
IN (SELECT Campo4
FROM Tabela WHERE Codigo = 92031 AND data = to_date([ô]20120201[ô],[ô]YYYYMMDD[ô]) )

e depois com o resultado da query em cima essa parte.

select * from #tmpView where Outradata = TO_DATE([ô]20120210[ô],[ô]YYYYMMDD[ô])
MGALDINO 19/03/2012 16:59:45
#397556
JWCELYO valeu,


Esqueci de colocar outra coisa, o banco desse cliente é ORACLE eu mesmo conheço pouco, mais acho que isso não funciona [Ô]#tmpView[Ô].

Vou pesquisar como criar uma temporária, mais a ideia é boa!
Tópico encerrado , respostas não são mais permitidas