Pessoal,

Tenho uma tabela muito grande, particionada, que possui a coluna data_hora,
que é indexada. Ao consultar a tabela, preciso restringir pela data_hora,
mas considerando o fuso horário.
As duas tabelas são mais complexas, mas pra entender melhor o problema,
tenho o exemplo abaixo.


Digamos que:

Tb_dados
- Data_hora
- Id_fuso
- valor

Tb_fuso
- id_fuso
- fuso

Três índices:
 tb_dados(data_hora), tb_dados(id_fuso), tb_fuso(id_fuso)


faço uma consulta do tipo

select sum(valor)
from tb_dados d, tb_fuso f
where d.id_fuso = f.id_fuso
and data_hora-fuso between v_data_inicio and v_data_fim

o problema é que essa consulta me retorna um full scan na particao da tabela
de dados, o que fica muito lento...

sei que o problema é o "data_hora+fuso" que não serve de índice, mas mesmo
colocando o fuso do outro lado da condição, o oracle não usa o índice.

Existe alguma forma de resolver esta consulta sem alterar a estrutura da
tabela ou fazer uma consulta pra cada fuso diferente?



______________________________________________________________________

Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
Falar com os Moderadores:([EMAIL PROTECTED])
Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar 
______________________________________________________________________ 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a