1、表结构有3个字段:ID,DATETIME, VALUE
2、每天会产生500万条记录,因此按天进行分表,表名TABLE_YYYYMMDD,也就是每天产生一个表来存储当天的数据。一年后产生了365个表,我想对整年记录的VALUE值进行排序,取排序后的记录中的任意一段连续的100条记录怎么查呢,是不是分表有问题?效率如何保证?求解!
2、每天会产生500万条记录,因此按天进行分表,表名TABLE_YYYYMMDD,也就是每天产生一个表来存储当天的数据。一年后产生了365个表,我想对整年记录的VALUE值进行排序,取排序后的记录中的任意一段连续的100条记录怎么查呢,是不是分表有问题?效率如何保证?求解!
每年做一个年度整合,
查询的时候 直接从年度整合里面查询
条件语句:
where rownum between "开始值" and “开始值+100”
分区了,就没必要联合查询了啊?
需要那段就查那个分区,不需要在意其他的分区,这样你的速度就快多了啊
[/Quote
我没有用过分区,你的意思是分区后就不需要分表了是吗?比如如果不分表一年后一个表的数据就有72亿条记录,一个72亿行记录的表在分区的情况下,我要按某字段的值进行排序然后取某期间的值能保证效率吗?注意的是这里涉及到排序,记录的值可能是零散的分布在不同的分区里的。
OWNNAME => 'schema'
,TABNAME => 'table_name'
,METHOD_OPT => 'FOR ALL INDEXED'
,CASCADE => FALSE
); DBMS_STATS.GATHER_INDEX_STATS(
OWNNAME => 'schema',
INDNAME => 'index_name'
);
你把上面的语句中的schema名和表名换成你的,执行就可以了。