自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle數(shù)據(jù)庫的在空間管理三個技巧介紹

數(shù)據(jù)庫 Oracle
我們今天主要介紹的是Oracle數(shù)據(jù)庫的在空間管理三個技巧的描述,主要是表空間的相關(guān)自由空間 ,以及表空間的自由空間與關(guān)于連續(xù)空間 。

我們大家都知道在Oracle數(shù)據(jù)庫里,DBA是可以通過相關(guān)觀測某些表或是相關(guān)的視圖來了解其當(dāng)前相關(guān)空間的具體使用的狀況,來作出可能的相關(guān)調(diào)整決定。以下就是文章的主要內(nèi)容的具體描述。

一.表空間的自由空間

通過對表空間的自由空間的觀察,可用來判斷分配給某個表空間的空間是太多還是不夠。請看下列的語句

 

 

  1. SQL > select a.file_id "FileNo",a.tablespace_name   
  2. "Tablespace_name",   
  3. 2 a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",   
  4. 3 sum(nvl(b.bytes,0)) "Free",   
  5. 4 sum(nvl(b.bytes,0))/a.bytes*100 "%free"   
  6. 5 from dba_data_files a, dba_free_space b   
  7. 6 where a.file_id=b.file_id(+)   
  8. 7 group by a.tablespace_name ,   
  9. 8 a.file_id,a.bytes order by a.tablespace_name;   
  10. File Tablespace   
  11. No _nameBytes Used Free %free   
  12. 11IDX_JF .146E+09 849305600 1.297E+09 60.431806   
  13. 9 JFSJTS 2.146E+09 1.803E+09 343793664 16.016961   
  14. 10JFSJTS 2.146E+09 1.359E+09 787431424 36.685546   
  15. 2 RBS523239424 359800832 163438592 31.235909   
  16. 12RBS1.610E+09 1.606E+09 3104768 .19289495   
  17. 8 RBSJF 3.220E+09 2.716E+09 504356864 15.662396   
  18. 7 SFGLTS 2.146E+09 1.228E+09 918159360 42.776014   
  19. 6 SFSJTS 2.146E+09 1.526E+09 620093440 28.889457   
  20. 1 SYSTEM 523239424 59924480 463314944 88.547407   
  21. 3 TEMP 523239424294912 522944512 99.943637   
  22. 4 TOOLS 15728640 12582912 314572820   
  23. 5 USERS 7340032 81927331840 99.888393   
  24. 12 rows selected.   

 

可以看出,在FileNo為12的表空間RBS中,只有0.19%的分配空間未被使用,這個比例太小了,而在SYSTEM及TEMP等表空間中,高達80%以上的空間未被利用,對于生產(chǎn)型Oracle數(shù)據(jù)庫,這個表空間的設(shè)置有些偏高。

關(guān)于自由空間的管理,有下面的一些建議:

利用Export及Import命令卸出和裝入表空間可以釋放大量的空間,從而緩解增加另外的數(shù)據(jù)文件的要求。

如果包含具有高插入(insert)和更新(update)活動的表的表空間中自由空間的比重下降到了15%以下,要為此表空間增加更多的空間。

對于一個基本是靜態(tài)表數(shù)據(jù)的表空間,如果有多于20%的自由空間,則可以考慮減少分配給它的文件空間量。

減少SYSTEM表空間的空間量比較困難,因為那要重建Oracle數(shù)據(jù)庫。

二 表及索引的擴展

A.為了防止表或索引被過分擴展,及時實現(xiàn)對Oracle數(shù)據(jù)庫的調(diào)整,用戶應(yīng)當(dāng)經(jīng)常對有關(guān)對象進行觀察。

我們可以認為,擴展區(qū)域大于5個的表或索引為過分擴展(overextended)。請看下面的語句:

 

 

  1. SQL > select substr(segment_name,1,15)   
  2. Segment_name,segment_type,   
  3. 2 substr(tablespace_name,1,10)   
  4. Tablepace_name,extents,Max_extents   
  5. 3from dba_segments   
  6. 4where extents >5 and owner='JFCL'   
  7. 5order by segment_name;   
  8. SEGMENT_NAMESEGMENT TABLEPACE_   
  9. EXTENTS MAX_EXTENTS   
  10. _TYPE   
  11. CHHDFYB TABLE JFSJTS 11121   
  12. CHHDFYB_DHHMINDEX JFSJTS9121   
  13. DJHZFYB_BF TABLE JFSJTS 17500   
  14. DJHZFYB_DJHMINDEX IDX_JF6500   
  15. DJHZFYB_JZHMINDEX IDX_JF7500   
  16. GSMFYB TABLE JFSJTS 11121   
  17. JFDHTABLE JFSJTS 14500   
  18. JFDH_DHHM INDEX IDX_JF 61500   
  19. JFDH_JZHM INDEX IDX_JF 64500   
  20. XYKFYB TABLE JFSJTS7121   
  21. YHDATABLE JFSJTS6500   
  22. YHDA_BAKTABLE JFSJTS6500   
  23. YHHZFYB_12 TABLE JFSJTS 10500   
  24. 13 rows selected.   

 

通過觀察, DBA可以及時發(fā)現(xiàn)問題并進行相應(yīng)的處理。我們可以利用export卸出表,然后刪除表,再利用import命令將表裝入,這樣,可以將不連續(xù)的區(qū)域合并成一個連續(xù)的空間。

B.如果用戶希望對表的空間設(shè)置進行優(yōu)化,例如,需要改變表EMP的initial參數(shù),可以采用下面的方法:

1.在將EMP表卸出并刪除后執(zhí)行imp命令時使用indexfile參數(shù):

 

  1. imp userid=scott/tiger file=emp.dmp indexfile=emp.sql 

Oracle把表和索引的創(chuàng)建信息寫到指定的文件,而不是把數(shù)據(jù)寫回。

2.打開emp.sql文件:

 

 

  1. REM CREATE TABLE "SCOTT"."EMP" ("EMPNO"   
  2. NUMBER(4, 0), "ENAME"   
  3. REM VARCHAR2(10), "JOB" VARCHAR2(9),   
  4. "MGR" NUMBER(4, 0), "HIREDATE" DATE,   
  5. REM "SAL" NUMBER(7, 2), "COMM" NUMBER   
  6. (7, 2), "DEPTNO" NUMBER(2, 0))   
  7. REM PCTFREE 10 PCTUSED 40 INITRANS 1   
  8. MAXTRANS 255 LOGGING STORAGE(INITIAL   
  9. REM 10240 NEXT 10240 MINEXTENTS 1 MAXEXTENTS   
  10. 121 PCTINCREASE 50 FREELISTS   
  11. REM 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)   
  12. TABLESPACE "USER_DATA" ;   
  13. REM ... 14 rows  

對它進行編輯,去除"REM"等信息,找到Initial參數(shù),根據(jù)需要改變它。

3.在SQL*plus中執(zhí)行emp.sql。

4.裝入數(shù)據(jù):

 

 

  1. mp userid=scott/tiger ignore=y file=emp.dmp  

需要注意的是,ignore參數(shù)必須設(shè)為Y.

C.可以用下面的語句來觀察表或索引距離達到最大擴展的狀況,“UNUSE”為距離達到最大擴展的值,在User_extents表中,extent_id是從0開始記述數(shù)的。

 

 

  1. SQL >select a.table_name "TABLE_NAME",max   
  2. (a.max_extents) "MAXEXTENTS" ,   
  3. 2 max(b.extent_id)+1 "IN USE", MAX   
  4. (a.max_extents)-(max(b.extent_id)+1) "UNUSE"   
  5. 3 from user_tables a, user_extents b   
  6. 4where a.table_name=b.segment_name   
  7. 5 group by a.table_name ORDER BY 4;   
  8. TABLE_NAME MAXEXTENTS IN USEUNUSE   
  9. YZPHB 98 1 97   
  10. SHJYB 121 1 120   
  11. SHFYB 121 1 120   
  12. RCHDB 121 1 120   
  13. SJTXDZB121 1 120   
  14. SJTXDAB121 1 120   
  15. CHYHB 121 1 120   
  16. JFDH 50014 486   
  17. 8 rows selected.   

 

如果“UNUSE"小到一定的程度,我們就應(yīng)該加以關(guān)注,進行適當(dāng)?shù)恼{(diào)整處理。

三 關(guān)于連續(xù)空間

可以用下面的語句來查看Oracle數(shù)據(jù)庫中的自由空間:

 

 

  1. SQL > select * from dba_free_space   
  2. where tablespace_name='SFSJTS'   
  3. 2 order by block_id;   
  4. TABLESPACE FILE_ID BLOCK_ID BYTESBLOCKS   
  5. _NAME   
  6. SFSJTS 6 133455 1064960 130   
  7. SFSJTS 6 133719 1032192 126   
  8. SFSJTS 6 133845 1064960 130   
  9. SFSJTS 6 135275 1064960 130   
  10. SFSJTS 6 135721 606208 74   
  11. SFSJTS 6 139877 901120 110   
  12. SFSJTS 6 143497 737280 90   
  13. SFSJTS 6 220248 737280 90   
  14. SFSJTS 6 246228 491520 60   
  15. SFSJTS 6 261804 1064960 130   
  16. 10 rows selected.   

 

我們可以通過命令的結(jié)果來估計相鄰自由空間的真正數(shù)量。對每一行,用起始快的id(BLOCK_ID)加上自由塊(BLOCKS)的數(shù)量,如果其和與下一行的塊id(BLOCK_ID)相等,則此兩行是連續(xù)的。如上例第二行和第三行,133719+126=133845,而1338456+130!=135275,所以從block_id為133719開始,有126+130=256個block的連續(xù)空間。

在Oracle數(shù)據(jù)庫的后臺,系統(tǒng)監(jiān)視器(SMON)周期性地合并自由空間相鄰的塊,以得到更大的連續(xù)塊。而DBA可以用SQL命令來完成這個工作:

 

 

  1. alter tablespace tablespace_name coalesce;  

Oracle空間管理對數(shù)據(jù)庫的工作性能有重要影響,其管理方法值得我們認真摸索研究。

文章出自:http://www.programbbs.com/doc/class10-3.htm

【編輯推薦】

  1. Oracle創(chuàng)建存儲過程的實際應(yīng)用代碼的介紹
  2. Oracle創(chuàng)建存儲過程的實際應(yīng)用代碼的介紹
  3. Oracle數(shù)據(jù)庫,超強!
  4. Oracle數(shù)據(jù)庫字符集的查詢方案介紹
  5. Oracle 11g中最具有獨特點的5大特點
責(zé)任編輯:佚名 來源: programbbs
相關(guān)推薦

2023-03-06 11:44:37

Postgres數(shù)據(jù)庫

2010-04-21 11:43:33

Oracle數(shù)據(jù)庫

2011-08-05 09:33:56

OracleUser ProcesServer Proc

2010-10-26 13:45:01

Oracle數(shù)據(jù)庫備份

2009-06-11 13:12:59

Oracle索引創(chuàng)建索引

2010-03-18 09:28:14

Oracle數(shù)據(jù)庫遷移

2009-03-03 11:41:14

數(shù)據(jù)庫表表分區(qū)

2013-12-18 13:06:33

數(shù)據(jù)庫安全安全審計啟明星辰

2011-03-23 17:39:34

Oracle數(shù)據(jù)庫索引創(chuàng)建

2010-05-04 16:57:45

Oracle空間管理

2010-04-30 10:07:45

Linux管理效率

2012-02-28 09:41:00

Linux管理效率技巧

2011-03-17 16:35:20

Oracle數(shù)據(jù)庫段管理

2011-05-19 13:49:09

2010-05-19 18:11:05

2011-03-30 13:03:14

數(shù)據(jù)庫營銷

2011-03-11 16:25:53

Oracle數(shù)據(jù)庫

2010-03-10 10:41:23

Linux管理效率

2011-03-17 16:19:42

Oracle數(shù)據(jù)庫管理

2023-05-10 16:42:35

點贊
收藏

51CTO技術(shù)棧公眾號