oracle 高水位線及如何有效的降低高水位線
一、什麼是水線(High Water Mark)?
所有的oracle段(segments,在此,為了理解方便,建議把segment作為表的一個同義詞) 都有一個在段內容納資料的上限,我們把這個上限稱為"high water mark"或HWM。這個HWM是一個標記,用來說明已經有多少沒有使用的資料塊分配給這個segment。HWM通常增長的幅度為一次5個資料塊,原則上HWM只會增大,不會縮小,即使將表中的資料全部刪除,HWM還是為原值,由於這個特點,使HWM很象一個水庫的歷史最高水位,這也就是HWM的原始含義,當然不能說一個水庫沒水了,就說該水庫的歷史最高水位為0。但是如果我們在表上使用了truncate命令,則該表的HWM會被重新置為0。
二、HWM資料庫的操作有如下影響:
a) 全表掃描通常要讀出直到HWM標記的所有的屬於該表資料庫塊,即使該表中沒有任何資料。
b) 即使HWM以下有空閒的資料庫塊,鍵入在插入資料時使用了append關鍵字,則在插入時使用HWM以上的資料塊,此時HWM會自動增大。
三、查詢哪些表需要降低高水位線
想要確定哪些表需要降低高水位線,要基於有正確的統計資訊的,統計資訊的錯誤也將導致結果的錯誤。
NUM_ROWS:表中現有的行數
NEED:行的平均長度*行數/1024/1024/0.9=表需要的空間,單位為MB,其中0.9為1-pctfree得到的。一般情況下建立表pctfree預設都是10%
TRUE:佔用空間
RECOVER_MB:可恢復的空間
where條件中,1定位表空間;2篩選出能壓縮至少100M的表,也可根據需求增加減少;3顯示前11行。
四、如何降低高水位線
降低高水位線的方式一共有7種,在這裡我們一一列舉出來。
a) truncate 表
b) 開啟對錶的shrink
c) CTAS
d) 表移動
e) exp/imp
f) expdp/impdp
g) 線上重定義
接下來將用實驗的方式將各方法的操作以及效果列舉出來。
oracle資料庫版本如下
實驗環境模擬
1、truncate 表
優點:速度快
缺點:表中資料全無
建議:當需要delete全表的時候,確定表中資料無用,可以使用這種方式進行清理。切記,謹慎。
接下來的六種方式,均採用清理表中部分資料,與開始對全表進行delete略有不同。
2、開啟表的shrink
優點:對於表中已清除部分資料依然可用,
缺點:暫不詳
3、CTAS
4、使用table move的方式
優點:降低了高水位線
缺點:因為表的移動,需要將索引進行重建
5、exp/imp
6、expdp/impdp
expdp/impdp這種方式也可以降低高水位線,方法類似exp/imp就不在做介紹。
7、線上重定義
優點:降低高水位線的同時,它是這七種辦法中唯一不需要停業務的方式。
建議:生產中大多數時候是沒辦法停止的,即便有停機時間,還是有其他好多操作要進行,線上重定義提供了很大的幫助。然而線上重定義的作用還遠遠不止於此。
-------END-------
所有的oracle段(segments,在此,為了理解方便,建議把segment作為表的一個同義詞) 都有一個在段內容納資料的上限,我們把這個上限稱為"high water mark"或HWM。這個HWM是一個標記,用來說明已經有多少沒有使用的資料塊分配給這個segment。HWM通常增長的幅度為一次5個資料塊,原則上HWM只會增大,不會縮小,即使將表中的資料全部刪除,HWM還是為原值,由於這個特點,使HWM很象一個水庫的歷史最高水位,這也就是HWM的原始含義,當然不能說一個水庫沒水了,就說該水庫的歷史最高水位為0。但是如果我們在表上使用了truncate命令,則該表的HWM會被重新置為0。
二、HWM資料庫的操作有如下影響:
a) 全表掃描通常要讀出直到HWM標記的所有的屬於該表資料庫塊,即使該表中沒有任何資料。
b) 即使HWM以下有空閒的資料庫塊,鍵入在插入資料時使用了append關鍵字,則在插入時使用HWM以上的資料塊,此時HWM會自動增大。
三、查詢哪些表需要降低高水位線
想要確定哪些表需要降低高水位線,要基於有正確的統計資訊的,統計資訊的錯誤也將導致結果的錯誤。
-
SYS@prod > SELECT NUM_ROWS,
-
2 AVG_ROW_LEN * NUM_ROWS / 1024 / 1024 / 0.9 NEED,
-
3 BLOCKS * 8 / 1024 TRUE,
-
4 (BLOCKS * 8 / 1024 - AVG_ROW_LEN * NUM_ROWS / 1024 / 1024 / 0.9) RECOVER_MB,
-
5 TABLE_NAME
-
6 FROM dba_tables
-
7 WHERE tablespace_name = 'VASTTBS'
-
8 AND BLOCKS * 8 / 1024 - AVG_ROW_LEN * NUM_ROWS / 1024 / 1024 / 0.9 > 100
-
9 AND rownum < 11
- 10 order by RECOVER_MB desc;
NEED:行的平均長度*行數/1024/1024/0.9=表需要的空間,單位為MB,其中0.9為1-pctfree得到的。一般情況下建立表pctfree預設都是10%
TRUE:佔用空間
RECOVER_MB:可恢復的空間
where條件中,1定位表空間;2篩選出能壓縮至少100M的表,也可根據需求增加減少;3顯示前11行。
四、如何降低高水位線
降低高水位線的方式一共有7種,在這裡我們一一列舉出來。
a) truncate 表
b) 開啟對錶的shrink
c) CTAS
d) 表移動
e) exp/imp
f) expdp/impdp
g) 線上重定義
接下來將用實驗的方式將各方法的操作以及效果列舉出來。
oracle資料庫版本如下
- SYS@prod > select * from v$version;
- BANNER
- --------------------------------------------------------------------------------
- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
- PL/SQL Release 11.2.0.3.0 - Production
- CORE 11.2.0.3.0 Production
- TNS for Linux: Version 11.2.0.3.0 - Production
- NLSRTL Version 11.2.0.3.0 - Production
實驗環境模擬
-
--建立一張表
-
VAST@prod > create table ote as select * from dba_objects;
-
Table created.
-
--建立索引
-
VAST@prod > create index ind_ote_id on ote(object_id);
-
Index created.
-
--建立同義詞
-
VAST@prod > create or replace public synonym ote for vast.ote;
-
Synonym created.
-
--收集統計資訊
-
VAST@prod > ANALYZE TABLE OTE COMPUTE STATISTICS; --ESTIMATE/COMPUTE
-
Table analyzed.
-
--段的資訊
-
VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE';
-
BYTES/1048576 BLOCKS EXTENTS
-
------------- ---------- ----------
-
9 1152 24
-
--刪除表中資料
-
VAST@prod > delete from ote;
-
75355 rows deleted.
-
VAST@prod > commit;
-
Commit complete.
-
--段的資訊
-
VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE';
-
BYTES/1048576 BLOCKS EXTENTS
-
------------- ---------- ----------
-
9 1152 24
-
--分析表塊數,空閒塊數,行數
-
VAST@prod > SELECT blocks, empty_blocks, num_rows
-
2 FROM user_tables
-
3 WHERE table_name = 'OTE';
-
BLOCKS EMPTY_BLOCKS NUM_ROWS
-
---------- ------------ ----------
-
1099 53 75355
- --BLOCKS + EMPTY_BLOCKS (1099+53=1152)DBA_SEGMENTS.BLOCKS 表示分配給這個表的所有的資料庫塊的數目。
-
--USER_TABLES.BLOCKS表示已經使用過的資料庫塊的數目。USER_TABLES.EMPTY_BLOCKS則表示剩餘塊的數目。
-
--插入資料
-
VAST@prod > insert into ote select * from dba_objects where object_id<20000;
-
19677 rows created.
-
VAST@prod > commit;
-
Commit complete.
-
--段的資訊
-
VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE';
-
BYTES/1048576 BLOCKS EXTENTS
-
------------- ---------- ----------
-
9 1152 24
- --可見即便插入了資料,但是分給OTE段的塊數目沒有改變,這是因為之前刪除了一部分資料,oracle在插入的時候,找到了這些可以被覆蓋的塊,
-
--將這些資料插入到這些塊中,故沒有分配新的塊給OTE段
-
--分析表塊數,空閒塊數,行數
-
VAST@prod > SELECT blocks, empty_blocks, num_rows
-
2 FROM user_tables
-
3 WHERE table_name = 'OTE';
-
BLOCKS EMPTY_BLOCKS NUM_ROWS
-
---------- ------------ ----------
-
1099 53 75355
-
--使用hint
-
--使用append將會把新插入的資料插到高水位線之後,省去了查詢可覆蓋塊的時間,這種方式也可提高插入的速度,但是會提升高水位線的高度。
-
VAST@prod > insert /*+append*/ into ote select * from dba_objects where object_id<20000;
-
19677 rows created.
-
VAST@prod > commit;
-
Commit complete.
-
--段的資訊
-
VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE';
-
BYTES/1048576 BLOCKS EXTENTS
-
------------- ---------- ----------
-
11 1408 26
-
--可見這次沒有查詢可覆蓋的塊,而是直接將資料插在了高水位線之後的空閒塊中。
-
--收集統計資訊
-
VAST@prod > ANALYZE TABLE OTE COMPUTE STATISTICS; --ESTIMATE/COMPUTE
-
Table analyzed.
-
--分析表塊數,空閒塊數,行數
-
VAST@prod > SELECT blocks, empty_blocks, num_rows
-
2 FROM user_tables
-
3 WHERE table_name = 'OTE';
-
BLOCKS EMPTY_BLOCKS NUM_ROWS
-
---------- ------------ ----------
-
1370 38 39354
- --對錶的資訊檢視時,建議先進行統計資訊的收集,不然會得到錯誤的資訊。
1、truncate 表
-
--截斷表
-
VAST@prod > truncate table ote;
-
Table truncated.
-
--收集統計資訊
-
VAST@prod > analyze table ote compute statistics; --estimate/compute
-
Table analyzed.
-
--段的資訊
-
VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE';
-
BYTES/1048576 BLOCKS EXTENTS
-
------------- ---------- ----------
-
.0625 8 1
-
--此時可見OTE的段只剩下8個塊了,因為表還是存在的,段頭還是記錄了一些基本資訊的。
-
--分析表塊數,空閒塊數,行數
-
VAST@prod > SELECT blocks, empty_blocks, num_rows
-
2 FROM user_tables
-
3 WHERE table_name = 'OTE';
-
BLOCKS EMPTY_BLOCKS NUM_ROWS
-
---------- ------------ ----------
-
0 8 0
-
--檢查索引以及同義詞是否可用
-
VAST@prod > col name for a15;
-
VAST@prod > select 'INDEX' type,index_name name,status from dba_indexes where index_name='IND_OTE_ID'
-
2 union all
-
3 select 'SYNONYM',object_name,status from user_objects where object_name='IND_OTE_ID';
-
-
TYPE NAME STATUS
-
------- --------------- --------
-
INDEX IND_OTE_ID VALID
-
SYNONYM IND_OTE_ID VALID
- --可見此種方式執行過後,原索引以及同義詞還是可用的。
缺點:表中資料全無
建議:當需要delete全表的時候,確定表中資料無用,可以使用這種方式進行清理。切記,謹慎。
接下來的六種方式,均採用清理表中部分資料,與開始對全表進行delete略有不同。
2、開啟表的shrink
-
--開啟行遷移
-
VAST@prod > alter table ote enable row movement;
-
Table altered.
-
--檢視錶的狀態
-
VAST@prod > select table_name,
-
2 tablespace_name,
-
3 ROW_MOVEMENT,
-
4 read_only,
-
5 segment_created
-
6 from user_tables
-
7 where table_name = 'OTE';
-
TABLE_NAME TABLESPACE_NAME ROW_MOVE REA SEG
-
------------------------------ ------------------------------ -------- --- ---
-
OTE VASTTBS ENABLED NO YES
-
--開啟shrink
-
VAST@prod > alter table ote shrink space;
-
Table altered.
-
--關閉行遷移
-
VAST@prod > alter table ote disable row movement;
-
Table altered.
-
--檢視錶的狀態
-
VAST@prod > select table_name,
-
2 tablespace_name,
-
3 ROW_MOVEMENT,
-
4 read_only,
-
5 segment_created
-
6 from user_tables
-
7 where table_name = 'OTE';
-
TABLE_NAME TABLESPACE_NAME ROW_MOVE REA SEG
-
------------------------------ ------------------------------ -------- --- ---
-
OTE VASTTBS DISABLED NO YES
-
--收集統計資訊
-
VAST@prod > analyze table ote compute statistics;
-
Table analyzed.
-
--段的資訊
-
VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE';
-
BYTES/1048576 BLOCKS EXTENTS
-
------------- ---------- ----------
-
3.375 432 19
-
--分析表塊數,空閒塊數,行數
-
VAST@prod > SELECT blocks, empty_blocks, num_rows
-
2 FROM user_tables
-
3 WHERE table_name = 'OTE';
-
-
BLOCKS EMPTY_BLOCKS NUM_ROWS
-
---------- ------------ ----------
-
413 19 29678
-
--檢查索引以及同義詞是否可用
-
VAST@prod > col name for a15;
-
VAST@prod > select 'INDEX' type,index_name name,status from dba_indexes where index_name='IND_OTE_ID'
-
2 union all
-
3 select 'SYNONYM',object_name,status from user_objects where object_name='IND_OTE_ID';
-
-
TYPE NAME STATUS
-
------- --------------- --------
-
INDEX IND_OTE_ID VALID
- SYNONYM IND_OTE_ID VALID
缺點:暫不詳
3、CTAS
- --建立一張新表
-
VAST@prod > create table ote1 as select * from ote;
-
Table created.
-
--收集統計資訊
-
VAST@prod > analyze table ote1 compute statistics;
-
Table analyzed.
-
--段的資訊
-
VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE1';
-
BYTES/1048576 BLOCKS EXTENTS
-
------------- ---------- ----------
-
4 512 19
-
--分析表塊數,空閒塊數,行數
-
VAST@prod > SELECT blocks, empty_blocks, num_rows
-
2 FROM user_tables
-
3 WHERE table_name = 'OTE1';
-
BLOCKS EMPTY_BLOCKS NUM_ROWS
-
---------- ------------ ----------
-
429 83 29678
- --檢查索引以及同義詞是否可用
-
原索引以及同義詞依然可用,但是在同義詞以及索引是指向原OTE表。
- 建議:對於這種情況,可以在業務可以停止的時候進行,在ote1表新建對應索引,對應同義詞等。然後rename OTE表,再將OTE1 rename為OTE。又或者將CTAS後將原表truncate,再將資料匯入。
4、使用table move的方式
-
--使用table move的方式
-
VAST@prod > alter table ote move tablespace vasttbs;
-
Table altered.
-
--收集統計資訊
-
VAST@prod > analyze table ote compute statistics;
-
Table analyzed.
-
--段的資訊
-
VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE';
-
BYTES/1048576 BLOCKS EXTENTS
-
------------- ---------- ----------
-
4 512 19
-
--分析表塊數,空閒塊數,行數
-
VAST@prod > SELECT blocks, empty_blocks, num_rows
-
2 FROM user_tables
-
3 WHERE table_name = 'OTE';
-
BLOCKS EMPTY_BLOCKS NUM_ROWS
-
---------- ------------ ----------
-
429 83 29678
-
--檢查索引以及同義詞是否可用
-
VAST@prod > col name for a15;
-
VAST@prod > select 'INDEX' type,index_name name,status from dba_indexes where index_name='IND_OTE_ID'
-
2 union all
-
3 select 'SYNONYM',object_name,status from user_objects where object_name='IND_OTE_ID';
-
TYPE NAME STATUS
-
------- --------------- --------
-
INDEX IND_OTE_ID UNUSABLE
-
SYNONYM IND_OTE_ID VALID
-
發現這時,索引已經失效,對索引進行線上重建。
-
--線上重建索引
-
VAST@prod > alter index ind_ote_id rebuild online;
-
Index altered.
-
--檢查索引以及同義詞是否可用
-
VAST@prod > select 'INDEX' type,index_name name,status from dba_indexes where index_name='IND_OTE_ID'
-
2 union all
-
3 select 'SYNONYM',object_name,status from user_objects where object_name='IND_OTE_ID';
-
TYPE NAME STATUS
-
------- --------------- --------
-
INDEX IND_OTE_ID VALID
- SYNONYM IND_OTE_ID VALID
缺點:因為表的移動,需要將索引進行重建
5、exp/imp
- --exp/imp降低高水位線
- [oracle@vedeu ~]$ exp vast/vast file=/home/oracle/ote.dmp tables=ote log=ote.log
- Export: Release 11.2.0.3.0 - Production on Mon Jan 23 11:54:49 2017
- Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
- Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
- Export done in US7ASCII character set and AL16UTF16 NCHAR character set
- server uses AL32UTF8 character set (possible charset conversion)
- About to export specified tables via Conventional Path ...
- . . exporting table OTE 29678 rows exported
- EXP-00091: Exporting questionable statistics.
- EXP-00091: Exporting questionable statistics.
- Export terminated successfully with warnings.
- --刪除ote表
- VAST@prod > drop table ote purge;
- Table dropped.
- --匯入表
- [oracle@vedeu ~]$ imp vast/vast file=/home/oracle/ote.dmp full=y
- Import: Release 11.2.0.3.0 - Production on Mon Jan 23 11:56:23 2017
- Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
- Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
- Export file created by EXPORT:V11.02.00 via conventional path
- import done in US7ASCII character set and AL16UTF16 NCHAR character set
- import server uses AL32UTF8 character set (possible charset conversion)
- . importing VAST's objects into VAST
- . importing VAST's objects into VAST
- . . importing table "OTE" 29678 rows imported
- Import terminated successfully without warnings.
- --收集統計資訊
- VAST@prod > analyze table ote compute statistics;
- Table analyzed.
- --段的資訊
- VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE';
- BYTES/1048576 BLOCKS EXTENTS
- ------------- ---------- ----------
- 4 512 19
- --分析表塊數,空閒塊數,行數
- VAST@prod > SELECT blocks, empty_blocks, num_rows
- 2 FROM user_tables
- 3 WHERE table_name = 'OTE';
- BLOCKS EMPTY_BLOCKS NUM_ROWS
- ---------- ------------ ----------
- 496 16 29678
- --檢查索引以及同義詞是否可用
- VAST@prod > col name for a15;
- VAST@prod > select 'INDEX' type,index_name name,status from dba_indexes where index_name='IND_OTE_ID'
- 2 union all
- 3 select 'SYNONYM',object_name,status from user_objects where object_name='IND_OTE_ID';
- TYPE NAME STATUS
- ------- --------------- --------
- INDEX IND_OTE_ID VALID
- SYNONYM IND_OTE_ID VALID
6、expdp/impdp
expdp/impdp這種方式也可以降低高水位線,方法類似exp/imp就不在做介紹。
7、線上重定義
-
--線上重定義
-
線上重定義同時也是我比較喜歡的一種方式,因為它可以不停業務,就完成降低高水位線。
-
--設定主鍵
-
VAST@prod > alter table ote add constraint pk_ote_id primary key (object_id);
-
Table altered.
-
--檢查是否可以線上重定義
-
VAST@prod > exec dbms_redefinition.can_redef_table( 'VAST','OTE',dbms_redefinition.cons_use_pk);
-
PL/SQL procedure successfully completed.
-
--定義中間表
-
VAST@prod > create table ote_interim as select * from ote where 1=0;
-
Table created
-
--開始線上重定義
- VAST@prod > exec dbms_redefinition.start_redef_table('VAST','OTE','OTE_INTERIM',
- col_mapping => 'OWNER OWNER,
- OBJECT_NAME OBJECT_NAME,
- SUBOBJECT_NAME SUBOBJECT_NAME,
- OBJECT_ID OBJECT_ID,DATA_OBJECT_ID DATA_OBJECT_ID,
- OBJECT_TYPE OBJECT_TYPE,
- CREATED CREATED,
- LAST_DDL_TIME LAST_DDL_TIME,
- TIMESTAMP TIMESTAMP,
- STATUS STATUS,
- TEMPORARY TEMPORARY,
- GENERATED GENERATED,
- SECONDARY SECONDARY,
- NAMESPACE NAMESPACE,
- EDITION_NAME EDITION_NAME',
-
options_flag => dbms_redefinition.cons_use_pk);
-
PL/SQL procedure successfully completed.
-
--處理索引以及約束物件
-
VAST@prod > declare
-
2 error_count number;
-
3 begin
-
4 error_count := 0;
-
5 dbms_redefinition.copy_table_dependents(uname => 'VAST',orig_table => 'OTE',
-
6 int_table => 'OTE_INTERIM',
-
7 copy_indexes => dbms_redefinition.cons_orig_params,
-
8 num_errors => error_count);
-
9 dbms_output.put_line(to_char(error_count));
-
10 end;
-
11 /
-
PL/SQL procedure successfully completed.
-
--結束線上重定義
-
VAST@prod > exec dbms_redefinition.finish_redef_table('VAST','OTE','OTE_INTERIM');
-
PL/SQL procedure successfully completed.
-
--收集統計資訊
-
VAST@prod > analyze table ote compute statistics;
-
Table analyzed.
-
--段的資訊
-
VAST@prod > select bytes/1048576,blocks,extents from dba_segments where segment_name='OTE';
-
BYTES/1048576 BLOCKS EXTENTS
-
------------- ---------- ----------
-
4 512 19
-
--分析表塊數,空閒塊數,行數
-
VAST@prod > SELECT blocks, empty_blocks, num_rows
-
2 FROM user_tables
-
3 WHERE table_name = 'OTE';
-
BLOCKS EMPTY_BLOCKS NUM_ROWS
-
---------- ------------ ----------
-
429 83 29678
-
--檢查索引以及同義詞是否可用
-
col name for a15;
-
VAST@prod > select 'INDEX' type,index_name name,status from dba_indexes where index_name='IND_OTE_ID'
-
2 union all
-
3 select 'SYNONYM',object_name,status from user_objects where object_name='IND_OTE_ID';
-
TYPE NAME STATUS
-
------- --------------- --------
-
INDEX IND_OTE_ID VALID
- SYNONYM IND_OTE_ID VALID
建議:生產中大多數時候是沒辦法停止的,即便有停機時間,還是有其他好多操作要進行,線上重定義提供了很大的幫助。然而線上重定義的作用還遠遠不止於此。
-------END-------
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30820196/viewspace-2132866/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 降低高水位線Oracle
- Oracle之降低高水位線Oracle
- 降低Oracle高水位線的方法Oracle
- ORACLE資料庫降低高水位線方法Oracle資料庫
- ORACLE 高水位線(HWM)Oracle
- oracle 回收高水位線Oracle
- oracle回收高水位線Oracle
- oracle的高水位線HWMOracle
- oracle的高水位線(HWM)Oracle
- oracle高水位線處理Oracle
- oracle 高水位線詳解Oracle
- Oracle的高水位線介紹Oracle
- Oracle高水位線(HWM)及效能優化Oracle優化
- 一、oracle 高水位線詳解Oracle
- Oracle 高水位線的一點研究Oracle
- oracle表碎片以及整理(高水位線)Oracle
- 對Oracle高水位線的研究實踐Oracle
- Oracle表段中的高水位線HWMOracle
- Oracle高水位Oracle
- Oracle delete 高水位線處理問題Oracledelete
- delete與高水位線HWM回收delete
- 關於高水位線和deletedelete
- Oracle案例10——HWM(高水位線)效能優化Oracle優化
- oracle回收高水位Oracle
- Oracle 高水位(HWM)Oracle
- 高水位線、行遷移行連結
- oracle高水位問題Oracle
- oracle 高水位分析處理Oracle
- Oracle 高水位(HWM)標記Oracle
- ORACLE的簡單處理高水位Oracle
- ORACLE高水位表的查詢方法Oracle
- 深入瞭解oracle的高水位(HWM)Oracle
- oracle11g表的高水位線hwm與dbms_space系列一Oracle
- Oracle 找出需要回收高水位的表Oracle
- Oracle表段中高水位線HWMOracle
- 各個Oracle 版本下如何調整高水位(HWM)Oracle
- Enq : HW-contention高水位線的擴充套件競爭ENQ套件
- 關於高水位的知識