• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

        Oracle數(shù)據(jù)庫(kù)的空間管理技巧

        Oracle數(shù)據(jù)庫(kù)的空間管理技巧

        更新時(shí)間:2022-05-13 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

        在Oracle數(shù)據(jù)庫(kù)中,DBA可以通過(guò)觀測(cè)一定的表或視圖來(lái)了解當(dāng)前空間的使用狀況,進(jìn)而作出可能的調(diào)整決定。

        一.表空間的自由空間

          通過(guò)對(duì)表空間的自由空間的觀察,可用來(lái)判斷分配給某個(gè)表空間的空間是太多還是不夠。請(qǐng)看下列的語(yǔ)句



        SQL > select a.file_id "FileNo",a.tablespace_name
        "Tablespace_name",
        2 a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",
        3 sum(nvl(b.bytes,0)) "Free",
        4 sum(nvl(b.bytes,0))/a.bytes*100 "%free"
        5 from dba_data_files a, dba_free_space b
        6 where a.file_id=b.file_id(+)
        7 group by a.tablespace_name ,
        8 a.file_id,a.bytes order by a.tablespace_name;

        File Tablespace
        No _nameBytes Used Free %free
        ------ --------- -------- --------- --------- ---------
        11IDX_JF .146E+09 849305600 1.297E+09 60.431806
        9 JFSJTS 2.146E+09 1.803E+09 343793664 16.016961
        10JFSJTS 2.146E+09 1.359E+09 787431424 36.685546
        2 RBS523239424 359800832 163438592 31.235909
        12RBS1.610E+09 1.606E+09 3104768 .19289495
        8 RBSJF 3.220E+09 2.716E+09 504356864 15.662396
        7 SFGLTS 2.146E+09 1.228E+09 918159360 42.776014
        6 SFSJTS 2.146E+09 1.526E+09 620093440 28.889457
        1 SYSTEM 523239424 59924480 463314944 88.547407
        3 TEMP 523239424294912 522944512 99.943637
        4 TOOLS 15728640 12582912 314572820
        5 USERS 7340032 81927331840 99.888393

        12 rows selected.

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

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

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

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

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

          減少SYSTEM表空間的空間量比較困難,因?yàn)槟且亟〝?shù)據(jù)庫(kù)。

        二 表及索引的擴(kuò)展

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

          我們可以認(rèn)為,擴(kuò)展區(qū)域大于5個(gè)的表或索引為過(guò)分?jǐn)U展(overextended)。請(qǐng)看下面的語(yǔ)句:



        SQL > select substr(segment_name,1,15)
        Segment_name,segment_type,
        2 substr(tablespace_name,1,10)
        Tablepace_name,extents,Max_extents
        3from dba_segments
        4where extents >5 and owner='JFCL'
        5order by segment_name;

        SEGMENT_NAMESEGMENT TABLEPACE_
        EXTENTS MAX_EXTENTS
        _TYPE
        -------------- --------- ----------
        CHHDFYB TABLE JFSJTS 11121
        CHHDFYB_DHHMINDEX JFSJTS9121
        DJHZFYB_BF TABLE JFSJTS 17500
        DJHZFYB_DJHMINDEX IDX_JF6500
        DJHZFYB_JZHMINDEX IDX_JF7500
        GSMFYB TABLE JFSJTS 11121
        JFDHTABLE JFSJTS 14500
        JFDH_DHHM INDEX IDX_JF 61500
        JFDH_JZHM INDEX IDX_JF 64500
        XYKFYB TABLE JFSJTS7121
        YHDATABLE JFSJTS6500
        YHDA_BAKTABLE JFSJTS6500
        YHHZFYB_12 TABLE JFSJTS 10500

        13 rows selected.

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

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

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

          imp userid=scott/tiger file=emp.dmp indexfile=emp.sql Oracle把表和索引的創(chuàng)建信息寫(xiě)到指定的文件,而不是把數(shù)據(jù)寫(xiě)回。

        2.打開(kāi)emp.sql文件:



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

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

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

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



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

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

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



        SQL >select a.table_name "TABLE_NAME",max
        (a.max_extents) "MAXEXTENTS" ,
        2 max(b.extent_id)+1 "IN USE", MAX
        (a.max_extents)-(max(b.extent_id)+1) "UNUSE"
        3 from user_tables a, user_extents b
        4where a.table_name=b.segment_name
        5 group by a.table_name ORDER BY 4;

        TABLE_NAME MAXEXTENTS IN USEUNUSE
        ---------- ----------- -------- ---------
        YZPHB 98 1 97
        SHJYB 121 1 120
        SHFYB 121 1 120
        RCHDB 121 1 120
        SJTXDZB121 1 120
        SJTXDAB121 1 120
        CHYHB 121 1 120
        JFDH 50014 486
        8 rows selected.

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

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

          可以用下面的語(yǔ)句來(lái)查看數(shù)據(jù)庫(kù)中的自由空間:



        SQL > select * from dba_free_space
        where tablespace_name='SFSJTS'
        2 order by block_id;

        TABLESPACE FILE_ID BLOCK_ID BYTESBLOCKS
        _NAME
        ----------- --------- --------------
        SFSJTS 6 133455 1064960 130
        SFSJTS 6 133719 1032192 126
        SFSJTS 6 133845 1064960 130
        SFSJTS 6 135275 1064960 130
        SFSJTS 6 135721 606208 74
        SFSJTS 6 139877 901120 110
        SFSJTS 6 143497 737280 90
        SFSJTS 6 220248 737280 90
        SFSJTS 6 246228 491520 60
        SFSJTS 6 261804 1064960 130

        10 rows selected.

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

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



        alter tablespace tablespace_name coalesce;

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

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類(lèi)教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲国产成人精品久久| 久久精品亚洲中文字幕无码麻豆 | 亚洲美国产亚洲AV| 国产成人精品免费午夜app| 亚洲情a成黄在线观看动漫尤物| 成年免费a级毛片免费看无码| 亚洲精品美女久久久久99| 18禁超污无遮挡无码免费网站| 亚洲日韩精品射精日| 久久永久免费人妻精品| 久久久亚洲欧洲日产国码aⅴ| 96免费精品视频在线观看| 亚洲精品中文字幕乱码| 成人无码区免费A片视频WWW| 77777亚洲午夜久久多喷| 日韩免费高清视频网站| 青青草国产免费国产是公开| 一本色道久久综合亚洲精品| 99久久免费国产特黄| 亚洲白色白色在线播放| 免费看的黄色大片| 特色特黄a毛片高清免费观看 | 在线亚洲午夜理论AV大片| 两个人看www免费视频| 久久久国产精品亚洲一区| 德国女人一级毛片免费| aa在线免费观看| 亚洲大香人伊一本线| 日本免费无遮挡吸乳视频电影| 一个人看的www在线免费视频| 亚洲好看的理论片电影| 永久黄网站色视频免费直播| 成人免费一区二区三区| 亚洲精品午夜久久久伊人| 国产成人一区二区三区免费视频| a毛看片免费观看视频| 亚洲kkk4444在线观看| 老司机亚洲精品影视www| 久热中文字幕在线精品免费| 日韩一区二区三区免费播放| 亚洲无线电影官网|