表分区使用时间进行分割的,一个月要维护一次。HIGH_VALUE里面的值如下:
TO_DATE(' 2004-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2008-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2004-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2007-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2008-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2008-02-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2009-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2004-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
我想删除 小于某一个时刻的所有表分区。怎么弄?这个SQL文怎么写问题就在于 HIGH_VALUE里面写的都是 时间比较的原始定义,
TO_DATE(' 2004-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2008-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2004-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2007-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2008-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2008-02-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2009-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
TO_DATE(' 2004-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN')
我想删除 小于某一个时刻的所有表分区。怎么弄?这个SQL文怎么写问题就在于 HIGH_VALUE里面写的都是 时间比较的原始定义,
是不是这样
怎么会有两个相同时间段的分区?
如 TO_DATE(' 2004-01-01 00:00:00', 'SYYYY-MM-DD HH24:MIS', 'NLS_CALENDAR=GREGORIAN') 楼主的维护,是删除分区,还是清除分区数据?
从维护角度来说,尽可能不要去动表结构与相关定义。 因此,建议清除数据就可以了,否则,历史数据重新导入时,会有问题。
那个是我贴错了。不会有同样定义的分区的,Oracle也不允许。对不起,造成你的混乱。
这么做我们觉得删除效率会提高。不知道这么理解对不对,恩。
这个历史数据不会被重新导入了。这些数据是最原始的数据,被统计完以后就没用了。
至于效率方面,用 truncate 分区的语句吧。