请都各位ORACLE大大:
现在一张表,按天进行分区。程序中有查询操作,查询所指定的时间段如果比较长,如一个月或更长的话,怎么查询呢?
是不是只能直接使用select ... from tablename where ...,用不上分区了?还是有其他更有效的写法?谢谢!

解决方案 »

  1.   

    感谢各位!还想问问,如果有一张表,perfdata_networkelement,保存一些网络设备的性能,具有列:
    ID  StartTime  Cpu  Memory  Cache  PkgIn  PkgOut ...每隔若干秒对设备进行一次采集并将数据存入表中,现在是按StartTime进行每天分区
    如果查询某一天的Cpu利用率>0.5的数据好写,可以在拼sql语句时指定相应分区,速度比较快:
    select ... from perfdata_networkelement partition(...) where Cpu>0.5如果查询几天中Cpu利用率>0.5的所有数据应该怎么写呢?例如2.1到2.3
    是写成
    select ... from perfdata_networkelement partition(p0201) where Cpu>0.5
    union all
    select ... from perfdata_networkelement partition(p0202) where Cpu>0.5
    union all
    select ... from perfdata_networkelement partition(p0203) where Cpu>0.5还是写成
    select ... from perfdata_networkelement where StartTime between to_date('2007-02-01','yyyy-mm-dd') and to_date('2007-02-03 23:59:59','yyyy-mm-dd hh24:mi:ss') and Cpu>0.5
    后一种写法会自动找到相应分区吗?谢谢!