<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    DataFile大小調整Script
    ?
    ??? 昨天學習了Oracle中的datafile大小的增長方式,當然一定會想到如果datafile被“撐”大之后,如何縮小datafile的大小呢?怎么知道這個datafile的真正被使用的實際大小是多少呢?以下就摘錄tom用來計算datafile可縮減大小的腳本。這個腳本在我第一次看到的時候,對我有很大的啟發,甚至很大程度上改變了我的編碼習慣。看上去真的是相當賞心悅目,多年的程序員下來,一定會追求形式上的美感。
    ?
    ?
    ?----------- maxshrink.sql ----------------------------------

    set verify off
    column file_name format a50 word_wrapped
    column smallest format 999,990 heading "Smallest|Size|Poss."
    column currsize format 999,990 heading "Current|Size"
    column savings? format 999,990 heading "Poss.|Savings"
    break on report
    compute sum of savings on report

    column value new_val blksize
    select value from v$parameter where name = 'db_block_size'
    /

    select file_name,
    ?????? ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) smallest,
    ?????? ceil( blocks*&&blksize/1024/1024) currsize,
    ?????? ceil( blocks*&&blksize/1024/1024) -
    ?????? ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) savings
    from dba_data_files a,
    ???? ( select file_id, max(block_id+blocks-1) hwm
    ???????? from dba_extents
    ??????? group by file_id ) b
    where a.file_id = b.file_id(+)
    /

    column cmd format a75 word_wrapped

    select 'alter database datafile '''||file_name||''' resize ' ||
    ?????? ceil( (nvl(hwm,1)*&&blksize)/1024/1024 )? || 'm;' cmd
    from dba_data_files a,
    ???? ( select file_id, max(block_id+blocks-1) hwm
    ???????? from dba_extents
    ??????? group by file_id ) b
    where a.file_id = b.file_id(+)
    ? and ceil( blocks*&&blksize/1024/1024) -
    ????? ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) > 0
    /

    ?
    -------------------------------------------------------------------------------
    執行結果:
    ?
    SQL> set verify off
    SQL> column file_name format a50 word_wrapped
    SQL> column smallest format 999,990 heading "Smallest|Size|Poss."
    SQL> column currsize format 999,990 heading "Current|Size"
    SQL> column savings? format 999,990 heading "Poss.|Savings"
    SQL> break on report
    SQL> compute sum of savings on report

    SQL> column value new_val blksize
    SQL> select value from v$parameter where name = 'db_block_size'
    2?? /
    ?
    VALUE
    -----------
    8192
    ?
    SQL> select file_name,
    ? 2? ?????? ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) smallest,
    ? 3? ?????? ceil( blocks*&&blksize/1024/1024) currsize,
    ? 4? ?????? ceil( blocks*&&blksize/1024/1024) -
    ? 5? ?????? ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) savings
    ? 6??? from dba_data_files a,
    ? 7? ????? (select file_id, max(block_id+blocks-1) hwm
    ? 8? ???????? from dba_extents
    ? 9? ??????? group by file_id ) b
    10?? where re a.file_id = b.file_id(+)
    11 /
    ?
    ?????????????????????????????????????????????????? Smallest
    ?????????????????????????????????????????????????????? Size? Current??? Poss.
    FILE_NAME???????????????????????????????????????????? Poss.???? Size? Savings
    --------------------------------------------------- ------- -------- --------
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSTEM01.DBF????? 478????? 480??????? 2
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\UNDOTBS01.DBF????? 15?????? 25?????? 10
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\USERS01.DBF???????? 2??????? 5??????? 3
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\PERFSTAT.DBF????? 144????? 500????? 356
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSAUX01.DBF????? 251????? 260??????? 9
    ???????????????????????????????????????????????????????????????????? --------
    sum?????????????????????????????????????????????????????????????????????? 380
    ?
    ?
    SQL> column cmd format a75 word_wrapped

    SQL> select 'alter database datafile '''||file_name||''' resize ' ||
    ? 2???????? ceil( (nvl(hwm,1)*&&blksize)/1024/1024 )? || 'm;' cmd
    ? 3??? from dba_data_files a,
    ? 4?????? ( select file_id, max(block_id+blocks-1) hwm
    ? 5?????????? from dba_extents
    ? 6????????? group by file_id ) b
    ? 7?? where a.file_id = b.file_id(+)
    ? 8???? and ceil( blocks*&&blksize/1024/1024) -
    ? 9???????? ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) > 0
    10? /
    ?
    CMD
    ------------------------------------------------------------------------------------------
    alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSTEM01.DBF' resize 478m;
    alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\UNDOTBS01.DBF' resize 15m;
    alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\USERS01.DBF' resize 2m;
    alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\PERFSTAT.DBF' resize 144m;
    alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSAUX01.DBF' resize 251m;
    ?
    -------------------------------------------------------------------------------------------
    ?
    ?
    ?
    ?
    ?
    ?
    關于這個問題的其他討論,參見一下地址:
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:153612348067
    ?
    ?
    ?
    ?
    posted on 2009-03-23 21:03 decode360 閱讀(373) 評論(0)  編輯  收藏 所屬分類: 10.DB_Tools
    主站蜘蛛池模板: 秋霞人成在线观看免费视频| 无人在线观看免费高清| 国产亚洲人成网站在线观看不卡| 日本视频免费高清一本18| 亚洲综合色丁香婷婷六月图片| 成人亚洲综合天堂| 精品亚洲aⅴ在线观看| 91福利免费体验区观看区| 亚洲综合色丁香麻豆| aⅴ在线免费观看| 国产精品亚洲专区在线观看| 扒开双腿猛进入爽爽免费视频| 亚洲熟妇无码AV不卡在线播放 | vvvv99日韩精品亚洲| 未满十八私人高清免费影院| 久久亚洲国产成人影院网站| 精品视频一区二区三区免费| 亚洲国产人成网站在线电影动漫| 久久精品免费一区二区| 亚洲色大成网站www永久网站| 国产小视频在线观看免费| 国产精品免费久久| 亚洲午夜精品久久久久久人妖| 69成人免费视频| 欧洲乱码伦视频免费国产| 亚洲精品午夜无码专区| 国产一卡2卡3卡4卡无卡免费视频| 亚洲精品自偷自拍无码| 国产亚洲一区区二区在线 | 久久久亚洲精华液精华液精华液| 亚洲精品视频久久久| 免费看男人j放进女人j免费看| 亚洲午夜久久久久久尤物| 免费一级国产生活片| 日本免费在线观看| 亚洲高清国产拍精品熟女| 国产亚洲精品资源在线26u| 五月婷婷综合免费| 中文在线免费看视频| 国产精品亚洲专区在线观看| 国产亚洲精品资在线|