亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1335 | 回復: 0
打印 上一主題 下一主題

statspack使用筆記 3-4 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-23 03:06 |只看該作者 |倒序瀏覽
statspack使用筆記 3
SQL優(yōu)化
Response Time(響應時間) = Service Time(服務時間) + Wait Time(等待時間)
Service Time = CPU Parse + CPU Recursive + CPU Other
CPU other = CPU used by this session - parse time cpu - recursive cpu usage
Service Time from CPU used by this session or CPU used when call started(會話占用CPU的時間,CPU的服務時間)
Wait Time is the sum of time waited for non-idle Wait Events(會話脫離CPU處于等待狀態(tài),非空閑等待時間的總和,空閑等待表示一個會話在數(shù)據庫實例中未工作,非空閑等待表示會話在數(shù)據庫實例中調用了其他的進程進行工作,例如DBWR從磁盤讀數(shù)據,此時沒有使用CPU)
CPU Parse from parse time cpu(CPU分析時間)
CPU Recursive from recursive cpu usage(CPU遞歸調用時間)
CPU Other from block accesses(邏輯讀,CPU工作時間)
例如:
        Top 5 Timed Events
        ~~~~~~~~~~~~~~~~~~                                                     % Total
        Event                                               Waits    Time (s) Ela Time
        -------------------------------------------- ------------ ----------- --------
        CPU time                                                        4,776    73.32
        db file sequential read                           185,588       1,577    24.22
        log file sync                                     115,489          93     1.43
        log file sequential read                            1,012          31      .48
        db file parallel write                              2,816          13      .20
                  -------------------------------------------------------------
        
        
        Statistic                               Total (cs)  per Second    per Trans  
        --------------------------------- ---------------- ------------ ------------  
        CPU used by this session                  477,566     513.5          4.0
        CPU used when call started                477,560     513.5          4.0
        parse time cpu                              7,374       7.9          0.1
        recursive cpu usage                       255,893     275.2          2.2
        
        
        由上述數(shù)據計算出來: 
        Service Time = CPU time = CPU used when call started = 477560/100 s = 4776 s
        Response Time = 4776/0.7332 = 6514 s
        Wait Time = Response Time - Service Time = 6514 – 4776 = 1738 s
        CPU Other = Service Time - parse time cpu - recursive cpu usage = 4776 – 74 - 2559
                  = 2143 s
        
        計算各項數(shù)據響應百分比: 
        CPU time% = CPU time/Response Time = 4776/6514 = 73.32%
        CPU Other% = CPU Other/Response Time = 2143/6514 = 32.90%
        CPU Parse% = parse time cpu/Response Time = 74/6514 = 1.14%
        CPU Recursive% = recursive cpu usage/Response Time = 2559/6514 = 39.29%
        Wait Time% = Wait Time/Response Time = 1738/6514 = 26.68%
        db file sequential read% = db file sequential read/Response Time = 1577/6514 = 24.21%
statspack使用筆記 4
根據計算出來的響應百分比,可以大致了解當前系統(tǒng)的性能瓶頸。
如果CPU time占用的百分比較高,則觀察消耗CPU的是哪一部分:
主要用于CPU Parse,那么很有可能是大量SQL語句正在進行硬分析(未綁定變量造成)。需要察看SQL ordered by Parse Calls for DB中的語句。
主要用于CPU Other,那么很有可能是SQL語句正在訪問大量的數(shù)據塊(全表掃描,全索引掃描,錯誤的索引范圍掃描)。需要察看SQL ordered by Gets for DB中的語句。

如果磁盤I/O占用的百分比較高(db file scattered read,db file sequential read),需要察看SQL ordered by Reads for DB中的語句

從操作系統(tǒng)中分析過高的CPU占用和磁盤I/O是由一個還是多個Oracle進程引起的。
        如果操作系統(tǒng)工具顯示大量CPU的消耗是由某些Oracle進程占用,那么需要分析這些進程在長時間的執(zhí)行那些SQL語句,可以通過作SQL TRACE進行跟蹤或者觀察Session調用的SQL語句主要是那一些。
        --檢查進程的sql語句  通過TOP檢查性能
        select p.spid, s.sid, q.sql_text, s.last_call_et, s.status
          from v$process p,
               v$session s,
               v$sqltext q
         where p.addr = s.paddr
           and s.sql_address = q.address
           and p.spid = 27053    --操作系統(tǒng)進程號,需要根據實際情況進行更改
         order by s.sid, q.piece
        如果CPU消耗分布在大多數(shù)的Oracle進程中,Cpu Other在相應時間中占有大部分,那么,需要分析statspack報告中的SQL ordered by Gets的語句,從中找到邏輯讀最高的SQL語句進行優(yōu)化。
        如果從操作系統(tǒng)中觀察到磁盤I/O很高(sar –d進行觀察),那么需要分析statspack報告中SQL ordered by Reads的語句,從中找到物理讀最高的SQL語句進行優(yōu)化。

statspack使用筆記 4
檢查后臺作業(yè)和批量處理的事務,以及長時間處理的session。
        --檢查運行時間超過20s的session和sql語句
        select p.spid, s.sid, q.sql_text, s.last_call_et, s.status
          from v$process p,
               v$session s,
               v$sqltext q
         where p.addr = s.paddr
           and p.background <> 1
        and s.sql_address = q.address
           and s.status = 'ACTIVE'
           and s.last_call_et > 20
         order by s.sid, q.piece

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP