Bom, sem nenhuma análise muito profunda (só uma passada de vista), o que parece é que quando vc faz o CASE vc está acessando dados da tabela C e ** não ** usa em lugar nenhum mais do SELECT dados da tabela ST, ENQUANTO na versão sem CASE vc faz referência direta às colunas da ST no SELECT via ,ST.DESCR_STATUS AS DESCR_STATUS : assim sendo, a impressão que temos é que o acesso à essa tal ST é que está causando mais demora, TALVEZ por estatísticas de má qualidade nessa tabela/coluna... Obtenha um plano de execução COMPLETO para as duas versões, ** inclusive ** com as colunas A-ROWS e E-ROWS para se poder avaliar o estimado e o obtido, SE houver diferença gritante estatisticamente entre os dois, se pode chutar mesmo estatísticas incompletas, falta ou aumento de buckets no histograma, por aí... []s Chiappa
--- Em oracle_br@yahoogrupos.com.br, Rafael Mendonca <raffaell.ti77@...> escreveu > > Pessoal, bom dia. > > Achei um caso estranho em uma query, na segunda coluna do SELECT, quando eu a > coloco para retornar o valor da tabela, a consulta demora bastante... > > Mas quando eu substituo a segunda coluna por um CASE, ela me traz na > velocidade de uma bala, alguém saberia explicar o motivo ? > > Estou com esse probleminha, tentando ajustar a query sem o CASE, só que > quando executo a consulta, demora em torno de 2 minutos. > > Segue a query sem o CASE e seu plano de execução: > > http://sql.nopaste.dk/p21339 > > > Segue a query com o CASE e seu plano de execução: > > http://sql.nopaste.dk/p21340 > > > Obs: me refiro a segunda coluna do SELECT "DESCR_STATUS" > > Já tentei criar um índice para as 2 colunas do filtro da tabela MOVIMENTO_SSF > > que melhorou em torno de 30 segundos, mas eu acho que não seja a solução. > > SELECT Count(*) FROM MOVIMENTO_SSF -- 2.456.384 registros > SELECT Count(*) FROM STATUS_PESSOA -- 9 registros > > [As partes desta mensagem que não continham texto foram removidas] >