《性能工具介紹》課件_第1頁
《性能工具介紹》課件_第2頁
《性能工具介紹》課件_第3頁
《性能工具介紹》課件_第4頁
《性能工具介紹》課件_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

性能監測工具的介紹Oracle優化培訓目標掌握Autotrace和TKPROF工具的使用方法理解工具中各種統計數據的含義議程Autotrace的使用TKPROF的使用議程Autotrace的使用TKPROF的使用閱讀查詢計劃將查詢計劃轉換成一個排序圖表——估算樹。Autotrace配置autotrace:1.以管理員登陸sqlplus(sysdba),執行@?/sqlplus/admin/plustrce2.運行grantplustracetopublic3.在各自的會話中運行@?/rdbms/admin/utlxplan4.啟動autotraceAutotrace報告包括查詢計劃和統計信息。啟動autotraceSetautotraceoff:不產生報告。Setautotraceon:查詢正常運行,報告包括查詢計劃和統計信息。Setautotraceonexplain:查詢正常運行,報告只包括查詢計劃。Setautotraceonstatistics:查詢正常運行,報告只包括統計信息。Setautotracetraceonly:禁止結果輸出,只顯示報告信息。Setautotracetraceonlystatistics:只顯示報告中的統計信息。Setautotracetraceonlyexplain:只顯示報告中的查詢計劃。查看autotrace報告(演示)Autotrace報告的組成部分執行計劃統計信息執行計劃Cost:CBO賦予查詢計劃的每個步驟的成本。Card:特定的查詢計劃步驟將輸出的記錄行數的估計。Bytes:CBO預測的每一個步驟將返回的數據字節數量。統計信息介紹Recusivecalls為執行你的SQL語句而引起運行其他SQL語句的數目(遞歸調用SQL語句的次數)。引起遞歸調用次數多的原因:1.硬分析2.PL/SQL函數調用更改中產生的副作用,如觸發器、基于函數的索引空間請求:在響應對空間的請求時,由于磁盤排序或對需要擴展的表進行了大量更改,會出現大量的遞歸SQL。對于字典管理的表空間是用數據表進行管理的,擴展時需要查詢或修改對應的表。硬分析如果遞歸調用次數開頭很高,可以運行相應的查詢,看看該統計數據是否仍然很高。若不高,則表明遞歸SQL是由于硬分析造成。關于硬分析的詳細內容在下一章講述。看例子:Altersystemflushshared_pool;Setautotracetraceonlystatistics;Select*fromscott.emp;Select*fromscott.emp;Dbblockgets和consistentget兩個數據描述了邏輯IO讀取數Dbblockget:當前方式的讀取是該塊存存在時檢索它,在更改語句中最常見,因為我們應該只更改該塊的最新的拷貝。Consisitentget:一致性讀取是以“讀一致性”方式從緩沖區高速緩存中檢索塊并且可能會包括讀取回退段,查詢通常執行“一致性讀取”。Physicalreads物理讀取統計是對你所執行的查詢需要多少實際IO或物理IO的一個度量兩類常見的物理IO:從數據文件中讀取數據:因為對數據文件操作IO以檢索索引和表數據都是先把某塊放進高速緩存中,然后執行一個邏輯IO檢索該塊,所以這些操作的后面都跟一個邏輯IO。從TEMP中直接讀:當排序區或散列區不足以支持完整的排序、散列時,oracle把某些數據交換到TEMP中再取回它,這種物理讀將繞過高速緩存并且不會引起邏輯IO。Redosize重做尺寸統計信息顯示在執行過程中產生了多少重做數據。通常在對表的數據進行增、刪、改的時候會產生重做信息。SQL*Net統計三部分:通過SQL*Net從客戶機中接收的字節數通過SQL*Net發送給客戶機的字節數SQL*Net到客戶機的往返次數注意:為減少該統計數據量,查詢語句中只返回必要的列,這樣可以提高效率。

排序及已處理的行Sorts(memory):顯示在內存中處理排序的總次數。Sorts(disk):顯示在臨時表空間中進行排序的次數。Rowsprocessed:顯示受影響的行數。議程Autotrace的使用TKPROF的使用TKPROFTkprof是一個用于分析Oracle跟蹤文件并且產生一個更加清晰合理的輸出結果的可執行工具。如果一個系統的執行效率比較低,一個比較好的方法是通過跟蹤用戶的會話并且使用Tkprof工具使用排序功能格式化輸出,從而找出有問題的SQL語句。一旦啟動跟蹤,oracle將所有的SQL和應用程序使用的頂層PL/SQL調用記錄到服務器上的跟蹤文件中(是數據庫服務器,不是客戶機)。使用TKPROF的一般步驟啟動定時統計信息啟動對session的跟蹤命令獲取生成的跟蹤文件使用TKPROF命令把跟蹤文件轉換成容易閱讀的格式啟動會話跟蹤啟動定時統計:

altersession(system)settimed_statistics=true;在session打開跟蹤設置(三種方式):1)Altersessionsetsql_trace=true2)dbms_session.set_sql_trace(TRUE);3)用事件打開和關閉:

altersessionsetevents'10046tracenamecontextforever,level<N>';

altersessionsetevents'10046tracenamecontextoff';Level<N>1:啟動標準SQL_TRACE工具,和sql_trace=true一樣;4:啟動SQL_TRACE并捕捉跟蹤文件中的綁定變量;8:啟動SQL_TRACE并捕捉跟蹤文件中的等待事件;12:啟動SQL_TRACE并捕捉跟蹤文件的綁定變量和等待事件。啟動TKPROF(續)以dba身份登陸監測其他session1.使用一下語句查詢需要監測的session的sid和serial#selects.sid,s.serial#fromv$sessions2.dbms_system.set_sql_trace_in_session(sid,serial#,TRUE)—false為關閉跟蹤。獲取存放跟蹤文件的路徑跟蹤文件存放在oracle主目錄\admin\數據庫實例名\udump下的trc文件查看跟蹤文件的存放目錄select*fromv$parameterwhere

name='user_dump_dest‘修改跟蹤文件的存放目錄altersystemsetuser_dump_dest='c:\temp';

使用TKPROF命令轉換格式tkproftracefileoutputfile[explain=][table=][print=][insert=][sys=][sort=]其中比較有用的一個排序選項是fchela,即按照elapsedtimefetching來對分析的結果排序(記住要設置初始化參數time_statistics=true),生成的.prf文件將把最消耗時間的sql放在最前面顯示。

查看TKPROF報告包括一下內容:查詢和執行統計查詢環境查詢計劃等待事件查詢和執行統計

語句執行的三個階段:1.Parse(分析):此階段oracle在共享池中找到(軟分析)和創建該查詢的新計劃(硬查詢)的所在。2.Execute(執行):此階段是由oracle在該查詢的OPEN或EXECUTE語句所做的工作,通常為增、刪、改語句的工作所在。3.Fetch(提取):對于select語句,大多數工作在此階段進行。報告的頂部標題COUNT:這個語句被parse、execute、fetch的次數。CPU:這個語句對于所有的parse、execute、fetch所消耗的cpu的時間,以秒為單位。ELAPSED:這個語句所有消耗在parse、execute、fetch的實際總的時間。DISK:執行物理IO的次數QUERY:檢索一致方式的塊時執行邏輯IO的次數CURRENT:以當前方式檢索塊時執行邏輯IO的次數ROWS:被處理或受影響的行數。查詢環境Missesinlibrarycacheduringparse:0如果該值為0則說明該查詢通過了軟分析,即在共享池中找到該查詢。Optimizer優化程序目標僅顯示在此查詢分析時優化程序目標的設置值:如CHOOSE、RULE、FIRST_ROWS、ALL_ROWS。查詢計劃和等待事件需注意的事件dbfilescatteredread這種情況通常顯示與全表掃描相關的等待。當數據庫進行全表掃時,基于性能的考慮,數據會分散(scattered)讀入BufferCache。如果這個等待事件比較顯著,可能說明對于某些全表掃描的表,沒有創建索引或者沒有創建合適的索引,我們可能需要檢查這些數據表已確定是否進行了正確的設置。

需注意的事件(續)dbfilesequentialread這一事件通常顯示與單個數據塊相關的讀取操作(如索引讀取)。如果這個等待事件比較顯著,可能表示在多表連接中,表的連接順序存在問題,可能沒有正確的使用驅動表;或者可能說明不加選擇地進行索引。在大多數情況下我們說,通過索引可以更為快速的獲取記錄,所以對于一個編碼規范、調整良好的數據庫,這個等待很大是很正常的。但是在很多情況下,使用索引并不是最佳的選擇,比如讀取較大表中大量的數據,全表掃描可能會明顯快于索引掃描,所以在開發中我們就應該注意,對于這樣的查詢應該進行避免使用索引掃描。小結TKPROF可以對某個會話進行跟蹤,它會對某個時間段內該會話所執行的SQL語句進行統計,所以通過它可以有效地查找到有問題的語句。而Autotrace只針對某條語句的執行情況進行統計。實際上,我們應該先使用TKPROF或其他監測工具找出有問題的SQL語句,然后把其抽取出來進行優化,這時才應該使用autotrace。謝謝!1、字體安裝與設置如果您對PPT模板中的字體風格不滿意,可進行批量替換,一次性更改各頁面字體。在“開始”選項卡中,點擊“替換”按鈕右側箭頭,選擇“替換字體”。(如下圖)在圖“替

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論