Amigo, Faz assim, que seu resultado será o mesmo com uma performance muito melhor:
WHERE DATA >= TRUNC(SYSDATE) AND DATA < TRUNC(SYSDATE)+1 Outra possibilidade seria você criar um índice baseado em função: CREATE INDEX I1 ON TABELA ( TRUNC(DATA) ); Desta maneira, você poderia deixar a sua query inalterada, com "WHERE TRUNC(DATA) = TRUNC(SYSDATE)" que o índice seria utilizado e a performance seria muito boa. []s Eduardo Claro -----Original Message----- From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of Jean Carlo Sent: quarta-feira, 10 de setembro de 2008 10:26 To: Grupo Oracle Subject: [oracle_br] select muito lento. Bom dia, pessoal. Tenho um select da seguinte forma: select * from tabela where trunc(data) = trunc(sysdate); onde tabela tem quase 6 milhões de registros, tenho um index no campo data, sei que usando o trunc é usado o mesmo não utiliza o index gostaria de saber se tem como melhorar a performece usando trunc. Pois usando where data > sysdate-1 o mesmo me traz as ultimas 24hrs e só qro do dia corrente, e dessa forma sei que o index é utilizado. Versão do meu BD: 9.2.0.5.0. [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- >Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU PROPRIO >ESPAÇO! VISITE: http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ Links do Yahoo! Grupos