Motta 645 Denunciar post Postado Janeiro 18, 2017 favorita Boas. Sem querer deixar o assunto muito "gasoso" mas queria apenas dicas de coisas a investigar no ambiente. Tenho uma SQL que usa uma tabela virtual , por uma série de motivos que não vem muito ao caso. Algo como : select *from(select a,b,c,x,virtual.dfrom tabela1,(select a,b,c,dfrom tabela2where ....) virtualwhere virtual.a = tabela1.aand virtual.b = tabela1.b virtual.c = tabela1.c) A SQL executa rápido , mas preciso fazer um teste do tipo select *from(select a,b,c,virtual.dfrom tabela1,(select a,b,c,dfrom tabela2where ....) virtualwhere virtual.a = tabela1.aand virtual.b = tabela1.b virtual.c = tabela1.c)where ((c <> d) or (a=1)) Ao fazer isto a SQL fica extremamente lenta. O que poderia ser investigado. Não sei se detalhes do tipo descrição , índices etc ajudariam, a questão básica é : Por que usar uma coluna de uma tabela virtual torna uma SQL no Oracle lenta ? Grato. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 19, 2017 Caso interesse a outrem , resolvi com um HINT SELECT /*+USE_CONCAT*/ * from(select a,b,c,virtual.dfrom tabela1,(select a,b,c,dfrom tabela2where ....) virtualwhere virtual.a = tabela1.aand virtual.b = tabela1.bvirtual.c = tabela1.c)where ((c <> d) or (a=1)) Compartilhar este post Link para o post Compartilhar em outros sites