關於高水位線和delete
因為oralce有一個HWM高水位,它是oracle的一個表使用空間最高水位線。當插入了資料以後,高水位線就會上漲,但是如果你採用delete語句刪除資料的話,資料雖然被刪除了,但是高水位線卻沒有降低,還是你剛才刪除資料以前那麼高的水位。除非使用truncate刪除資料。那麼,這條高水位線在日常的增刪操作中只會上漲,不會下跌,所以資料庫容量也只會上升,不會下降。而使用select語句查詢資料時,資料庫會掃描高水位線以下的資料塊,因為高水位線沒有變化,所以掃描的時間不會減少,所以才會出現使用delete刪除資料以後,查詢的速度還是和delete以前一樣。
解決方案:
1.首先匯出表,然後truncate這張表,最後匯入這張表。
2.在儲存空間當中移動表,但是由於rowid會被打亂,所以需要重建索引.
3.如果是oracle 10g.可是直接更新表的高水位線。
對應的SQL:
9i中:
create table aa_bak as select * from aa where record_time > sysdate - 10;
truncate table aa;
insert into aa select * from aa_bak;
drop table aa_bak;
create table aa_bak as select * from aa where record_time > sysdate - 10;
truncate table aa;
insert into aa select * from aa_bak;
drop table aa_bak;
10g 版本
alter tablename enable row movement;
alter tablename shrink space;
[@more@]
alter tablename enable row movement;
alter tablename shrink space;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11423276/viewspace-985464/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- delete與高水位線HWM回收delete
- Oracle delete 高水位線處理問題Oracledelete
- 關於高水位的知識
- oracle 高水位線及如何有效的降低高水位線Oracle
- ORACLE 高水位線(HWM)Oracle
- oracle 回收高水位線Oracle
- Oracle 降低高水位線Oracle
- oracle回收高水位線Oracle
- oracle高水位線處理Oracle
- Oracle之降低高水位線Oracle
- oracle 高水位線詳解Oracle
- oracle的高水位線HWMOracle
- oracle的高水位線(HWM)Oracle
- 一、oracle 高水位線詳解Oracle
- 降低Oracle高水位線的方法Oracle
- Oracle的高水位線介紹Oracle
- Oracle 高水位線的一點研究Oracle
- 高水位線、行遷移行連結
- oracle表碎片以及整理(高水位線)Oracle
- 【實驗】關於HWM(高水位)的學習與測試
- ORACLE資料庫降低高水位線方法Oracle資料庫
- Oracle高水位線(HWM)及效能優化Oracle優化
- 對Oracle高水位線的研究實踐Oracle
- Oracle表段中的高水位線HWMOracle
- Oracle高水位Oracle
- Oracle案例10——HWM(高水位線)效能優化Oracle優化
- oracle回收高水位Oracle
- Oracle 高水位(HWM)Oracle
- oracle高水位問題Oracle
- Oracle 高水位查詢和處理方法彙總Oracle
- oracle 高水位分析處理Oracle
- Oracle 高水位(HWM)標記Oracle
- 一個關於c++字串處理和delete[]與delete差別的問題 (轉)C++字串delete
- 關於delete,drop,truncate的問題delete
- Enq : HW-contention高水位線的擴充套件競爭ENQ套件
- Handler_delete和Com_delete有什麼關係delete
- mysql釋放檔案高水位MySql
- Rollback&Truncate操作對高水位線影響之效能優化篇優化