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

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

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

    beauty_beast

    上善若水 厚德載物

            oracle調(diào)優(yōu)工作是非常復(fù)雜的,涉及到的方方面面也比較多,但從實際做的項目來看,往往都是應(yīng)用程序編寫的sql存在性能問題,個人認為如果沒有用到oracle比較復(fù)雜的特性功能,一般的調(diào)優(yōu)還是有章可循的。基本就是三步: 查找、分析、優(yōu)化,我總結(jié)了在項目中一些經(jīng)驗,和大家一起分享,有不對的地方請大家多多指正。
           一個新系統(tǒng)剛上線的時候,用戶量、數(shù)據(jù)量都不是很多,性能問題一般不會很快體現(xiàn)出來,當(dāng)用戶反映系統(tǒng)開始慢、http請求長時間沒有響應(yīng)(嚴重的時候?qū)е抡麄€應(yīng)用down機)時,我們就要密切關(guān)注了。
    查找的方法實際上oracle已經(jīng)提供了相關(guān)工具-statspack。
    該工具的安裝、使用比較簡單,日常主要用到的是腳本:
            腳本路徑${oracle_home}/rdbms/admin目錄下:
            --spdrop.sql   刪除腳本,丟棄統(tǒng)計分析的相關(guān)包、視圖、表、同義詞等對象(首次創(chuàng)建無須執(zhí)行)
            --spcreate.sql 創(chuàng)建腳本,生成統(tǒng)計分析的相關(guān)包、視圖、表、同義詞等對象(首次執(zhí)行前先創(chuàng)建一個表空間)
            --統(tǒng)計時生成兩次快照,一般在30-40分鐘左右
            --執(zhí)行方法
                 用sys登陸sqlplus后間隔對應(yīng)時間執(zhí)行兩次 exec statspack.snap;

            --spreport.sql 生成報告記錄sql ,生成的報告文件在系統(tǒng)當(dāng)前路徑下,文件名默認為:
                   sp_開始快照號_結(jié)束快照號.lst 
            --sprepsql.sql  分析相關(guān)快照中的sql執(zhí)行計劃,
            --sppurge.sql  刪除在兩個快照號之間包括本身的所有統(tǒng)計分析數(shù)據(jù)。
            --sptrunc.sql  截取statspack統(tǒng)計分析的相關(guān)數(shù)據(jù)  在統(tǒng)計分析的對應(yīng)用戶perfstat下執(zhí)行
     每次執(zhí)行快照生成的統(tǒng)計數(shù)據(jù)都在perfstat用戶中相關(guān)的表中,
     常用的:
             --查詢快照相關(guān)信息
                select snap_id,snap_time from stats$snapshot;
            --根據(jù)hash_value,快照查詢對應(yīng)的統(tǒng)計sql(statspack報告中sql過長會被截掉)
                select sql_text  from stats$sqltext where hash_value=查詢值 and last_snap_id=begin_snap_id;
             如果使用statspack工具,建議將timed_statistics 設(shè)置為true,否則無法查看到準(zhǔn)確的統(tǒng)計信息(9i版本后的設(shè)置為true對系統(tǒng)性能影響較小)。
                 alter system set timed_statistics=true;

    如果需要實時的查找性能隱患的相關(guān)sql,通過v$session_wait,v$session,v$sqltext_with_newlines三張動態(tài)視圖就可以基本查找到相關(guān)的sql,腳本如下:
            

    select sql_text ,sw.event
    from v$sqltext_with_newlines st,v$session se,v$session_wait sw
    where st.address=se.sql_address and st.hash_value=se.sql_hash_value
    and se.sid =sw.sid and  
    (sw.event 
    = 'buffer busy waits' or
      sw.event 
    = 'enqueue' or
      sw.event 
    = 'free buffer waits' or
      sw.event 
    = 'global cache freelist wait' or
      sw.event 
    = 'latch free' or
      sw.event 
    = 'log buffer space' or
      sw.event 
    = 'parallel query qref latch' or
      sw.event 
    = 'pipe put' or
      sw.event 
    = 'write complete waits' or
      sw.event 
    like 'library cache%' or
      sw.event 
    like 'log file switch%' 
    )  
    order by st.hash_value,st.piece; 

     
    這是我目前工作中常用的兩種方法,如果有其他方法,希望大家也共享出來。





     

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 四虎影视在线影院在线观看免费视频 | 亚洲第一综合天堂另类专| 免费网站观看WWW在线观看| 四虎免费永久在线播放| 亚洲乱妇老熟女爽到高潮的片 | 亚洲精品无码日韩国产不卡?V| 亚洲狠狠色丁香婷婷综合| 在线观看成人免费视频| 亚洲熟伦熟女专区hd高清| 永久免费毛片在线播放| 亚洲香蕉久久一区二区| 毛片免费在线观看网站| 亚洲欧洲av综合色无码| 国产黄色片在线免费观看| 色综合久久精品亚洲国产| 免费永久看黄在线观看app| 老司机午夜在线视频免费观| 亚洲精品综合久久| 中文精品人人永久免费| 亚洲国产高清人在线| 免费国产黄网站在线观看视频| 91精品国产亚洲爽啪在线影院 | 免费观看毛片视频| 亚洲AV日韩AV一区二区三曲| 国产免费直播在线观看视频| 又硬又粗又长又爽免费看 | 亚洲精品无码久久久久去q| 毛片免费在线观看| 国产精品亚洲午夜一区二区三区| 国产成人免费爽爽爽视频| 风间由美在线亚洲一区| 亚洲日本va中文字幕久久| 97精品免费视频| 亚洲av乱码一区二区三区按摩| 亚洲女同成人AⅤ人片在线观看| A片在线免费观看| 亚洲一区二区三区高清不卡| xvideos亚洲永久网址| 嫩草在线视频www免费观看| 亚洲人成电影在线观看青青| 免费中文字幕在线|