oracle10g系統管理之存儲參數
2024-08-29 13:53:52
供稿:網友
1. INITIAL
對于字典管理表空間來說,INITIAL用于指定段所分配的第一個區的尺寸。對于本地管理表空間來說,如果MINEXTENTS等于1,數據庫會使用INITIAL和區尺寸確定段的初始尺寸。假定本地管理表空間的區尺寸為5M,如果INITIAl為1M,那么會分配一個5M的區。如果INITIAL為7M,則分配兩個5M的區。INITIAL只能在建立對象時設置,不能使用ALTER語句進行修改。
CREATE TABLE t1(cola INT) TABLESPACE user01
STORAGE(INITIAL 500k);
說明:使用user01表空間,假定user01創建時使用UNIFORM選項,并且區尺寸為128K.則t1表的段初始尺寸為500K。
2. NEXT
對于本地管理表空間來說,因為數據庫可以自動管理區,所以該參數沒有太大意義。對于字典管理表空間來說,NEXT用于指定為段所分配的第二個區的尺寸。
3. PCTINCREASE
對于本地管理表空間來說,因為數據庫可以自動管理區,所以該參數沒有太大意義。對于字典管理表空間來說,該參數可以指定從第三個區開始,每個區比前一個區所增長的百分比。
4. MINEXTENTS
對于本地管理表空間來說,因為數據庫可以自動管理區,所以該參數沒有太大意義。對于字典管理表空間來說,MINEXTENTS用于指定為段所分配的初始區個數。
5. MAXEXTENTS
對于本地管理表空間來說,因為數據庫可以自動管理區,所以該參數沒有太大意義。對于字典管理表空間來說,MINEXTENTS用于指定段可包含的最大區個數。
6. FREELIST GROUPS
FREELIST GROUPS用于指定對象的空閑列表組個數,每個空閑列表組會占用一個數據塊。Oracle建議為Oracle Real application Cluster的每個例程指定一個空閑列表組。需要注意,FREELIST GROUPS只能在段級指定。
7. FREELISTS
FREELISTS用于指定每個空閑列表組上的空閑列表個數,空閑列表用于維護可插入數據的數據塊。需要注意,FREELISTS只能在段級指定。
8. 假定建立字典管理表空間user02時,指定默認存儲參數INITIAL和NEXT均為10K,PCTINCREASE為50.下面以建立表t2為例,說明在字典管理表空間上這些存儲參數的作用。
CREATE TABLE t2(cola int) TABLESPACE user02
STORAGE(NEXT 20K MINEXTENTS 4);
執行以上語句后,Oracle會建立表T1,并且為其分配尺寸為110K的表段t2。因為MINEXTENTS為4,所以段T1包含四個區;因為建表時未指定INITIAL,所以第一個區會使用表空間的默認存儲參數:10K。第二個區區20K,第三區:30K,第四區:50K。
9. 顯示已分配區
建立數據對象時,Oracle會為數據對象分配相應的段。段是由一個或多個區組成的,并且一個區只能存放在一個數據文件上,而同一個段的不同區可以放在不同數據文件上。通過查詢數據字典視圖dba_extents,可以取得已分配區的詳細信息。
SELECT extent_id,file_id,block_id,bytes
FROM dba_extents
WHERE owner=’SYS’ AND segment_name=’T1’;
10. 顯示空閑區
當在表空間上建立數據對象時,Oracle會在表空間的剩余空間中位相應段分配空間。當段不足以容納更多數據時,Oracle會通過分配去來擴展段。隨著時間的推移,將導致表空間的剩余空間越來越少。
SELECT sum(bytes)FROM dba_free_space
WHERE tablespace_name=’USER01’;