數據庫中有一個表達到5-6千萬行記錄,刪除一個月的數據時特別的慢,所以確定建立為分區表,定時刪除最早一個月的數據,使正式運行的數據保留半年的數據。
建立步驟如下:
1.對當前表做重命名:SQL>rename rfid_record to rfid_record_tmp;
2.建立自動按月分區表
SQL>CREATE TABLE RFID_RECORD PARTITION BY RANGE (arrive_time) INTERVAL(NUMTOYMINTERVAL(1, 'month')) (PARTITION P1 VALUES LESS THAN (TO_DATE('2011-11-01', 'yyyy-mm-dd'))) TABLESPACE RFID AS SELECT * FROM RFID_RECORD_TMP;
INTERVAL自動添加分區的條件,所有arrive_time小于2011-11-01放在p1分區中,其他按照每月自動添加分區。
3.建立索引,對原來RFID_RECORD的tigger做修改。
4.如果以后要刪除其中一個月的數據只要刪除一個分區就可以了
SQL>ALTER TABLE RFID_RECORD DROP PARTITION P1;
執行速度非常的快。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16381228/viewspace-711676/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16381228/viewspace-711676/