效能規劃器的使用
效能規劃器(Capacity Planner)是整合在Oracle 企業管理組件(Oracle Enterprise Management Packs)中用來對反映系統效能的參數進行收集的工具,可以指定要收集的資料、收集資料的頻率和資料裝載到Oracle Capacity Planner記錄資料庫的時間。這樣便於管理員對一定時間範圍內的系統績效參數進行比較分析。
1. 效能規劃器的設定
(1)在伺服器的案頭選擇【開始】/【程式】/【Oracle-OraHome90】/【Enterprise Management Packs】/【Diagnostics】/【Capacity Planner】選項,將出現如圖13.1所示的效能規劃器登入介面,利用登入管理伺服器的使用者名稱和密碼就可以正常登入。
(2)出現如圖13.2所示的效能規劃器的【收集】網路導航樹,選擇要收集效能資料的資料庫myoracle.mynet,出現【收集選項】選項卡介面。
其中關於【收集範圍】的設定包括兩個選項。
【Oralce建議的收集】:可以對曆史效能資料進行分析,支援效能診斷和報告。
【使用者自訂收集】:可以對曆史效能資料進行分析,但不支援效能診斷和報告。
關於【收集採樣頻率】有兩個選項。
【每時間間隔的採樣數】:預設是每小時採樣4次。
【採樣時間間隔】:設定採樣的時間間隔。
(3)如圖13.3所示為效能規劃器的【收集】/【儲存選項】選項卡介面,收集到的效能資料形成為可在任何Oracle資料庫中儲存的一組資料庫表。可以選擇將這些資料表格儲存體在安裝Oracle Management Server 時建立的資料檔案庫(用於儲存受管理環境的狀態資訊)或者是管理員制定的某個資料庫中。設定的參數包括。
選擇將記錄存放在資料檔案庫中或者是指定的資料庫中。
設定將樣本資料轉送到曆史資料存放資料庫的時間間隔。
(4)如圖13.4所示為效能規劃器的【收集】/【清除選項】選項卡介面,用於指定儲存資料的時間間隔和下次採樣時將自動清除某個具體時間之前的資料。
(5)如圖13.5所示為效能規劃器的【分析】選項卡,由於在圖13.3所示介面中選擇的儲存績效參數的資料庫在指定的資料庫“myoracle.mynet”,因此這裡要串連該資料
(6)成功串連記錄資料庫後在【管理目標導航器】中選擇【記錄資料據庫】/【資料庫】/【myoracle.mynet】選項,記錄資料庫中儲存的有關資料庫的統計資訊包括以下幾類。
回應時間:常式回應時間的統計資料。
等待事件數目:包括常式等待事件和等待事件的會話數的統計資訊。
I/O:包括檔案統計資訊和常式I/O統計資訊。
資料庫常式:包括常式效率和初始化參數統計資訊。
後台進程:包括對重做統計資訊、回退段和DBWR進程的統計資訊。
記憶體:對資料庫字典和共用池的統計資訊。
使用者統計資訊:對會話動作計數的統計資訊。
裝載:包括每秒的常式統計數和每個交易處理的統計數資訊。
選擇每一類下面的具體統計資訊,就可以進行曆史資料的分析和判斷了。
2. 效能規劃器的曆史資料分析
下面以對【回應時間】/【常式回應時間】的曆史統計資料進行分析為例,介紹如何利用效能規劃器分析曆史資料,並利用該工具對未來的效能進行預測性分析。
(1)單擊【回應時間】/【常式回應時間】選項,在出現的【資料來源】列表框中選擇資料庫“myoracle.mynet”,在【資料項目】列表框中顯示了曆史資料中有關常式回應時間的參數。
等待時間的百分比。
CPU時間的百分比。
每個交易處理的回應時間。
提交計數。
回退計數。
每次執行的回應時間。
執行計數。
單擊選擇要查看的資料項目後,單擊【顯示新圖表】按鈕,如圖13.6所示。
(2)出現如圖13.7所示的採樣資料的效能圖表,單擊如圖所示的按鈕系統將按照採樣的效能資料提供對未來效能的預測。
(3)出現如圖13.8所示的趨勢分析嚮導的【歡迎使用】介面,單擊按鈕。
(4)出現如圖13.9所示的趨勢分析嚮導的【日期範圍】介面,Capacity Planner 將以此日期範圍為依據對資料如何隨時間變化作出估計。 所選的日期範圍對趨勢分析的結果會產生重要影響。如果估計依據的是系統非常忙的一段很短的時間會得到一個結果。但是,如果估計依據的是很長一段時間 (包含系統不忙的時段)內收集的資料,則得到的結果將迥然不同。包括兩個選項。
如果選擇【使用為圖表選擇的日期範圍】單選鈕,則Capacity Planner 將分析在分析視窗中當前顯示的所有資料,然後產生基於該資料的估計值。
如果要分析特定範圍的資料,而不是分析顯示在圖表中的資料,可選擇【選擇新的圖表日期範圍】單選鈕。然後可以在兩個選項中選擇其一:產生基於最近一段時間的估計值和產生基於指定的特定日期範圍的估計值。
完成設定後單擊按鈕。
(5)出現如圖13.10所示的趨勢分析嚮導的【類型】介面,使用趨勢分析嚮導可以為所選的資料項目執行兩種趨勢分析。
【時間點趨勢分析】:為資料項目提供目標時間,然後 Oracle Capacity Planner 使用記錄資料庫中的值推測在此目標時間點上該資料項目的值。
【值趨勢分析】:為資料項目提供目標值,然後Oracle Capacity Planner使用記錄資料庫中的值推測資料項目將達到目標值的時間。
選擇【估計在以下日期資料項目將達到的值】單選鈕進行值趨勢分析,單擊按鈕。
(6)出現如圖13.11所示的趨勢分析嚮導的【說明】介面,顯示了系統計算後的趨勢分析的結果。要在資料顯示在圖表上之前先修改趨勢分析,可單擊按鈕,要更新圖表,單擊按鈕。
(7)出現如圖13.12所示的對常式回應時間參數的分析結果,可將分析結果儲存下來,也可以將其產生基於Web瀏覽器可以查看的網頁。
頂層會話的使用
頂層會話(TopSessions)是整合在Oracle 企業管理組件(Oracle Enterprise Management Packs)中用來對系統中的會話效能進行監控和分析的工具。因為每個會話都是來自伺服器或者客戶機的串連請求,通過對這些串連請求的資訊進行統計分析就可以觀察到系統處理會話的效能。
1.頂層會話的登入
(1)在伺服器的案頭選擇【開始】/【程式】/【Oracle-OraHome90】/【Enterprise Management Packs】/【Diagnostics】/【TopSessions】選項,將出現如圖13.13所示的登入介面。注意一定要單擊【串連詳細資料】按鈕設定串連資料庫的方式,否則將產生亂碼。
(2)出現如圖13.14一致的串連詳細資料介面,選擇選擇【通過Intelligent Agent串連】單選鈕,單擊【確定】按鈕完成。
(3)出現如圖13.15所示的頂層會話介面,以表格的形式顯示了目前資料庫系統的後台會話和使用者會話的資訊。主要包括SID、會話名稱、狀態、來源機器、會話使用的物理參數和記憶體參數等。
2. 頂層會話的資訊分析
(1)在圖13.15所示介面中雙擊某個會話,將出現如圖13.16所示的會話的【詳細資料】選項卡,主要的資訊包括。
會話標識。
目前狀態。
會話的CPU活動。
會話的記憶體使用量。
會話的I/O使用。
(2)如圖13.17所示為會話資訊的【統計資訊】選項卡,以表格的形式顯示了該會話的各項績效參數。
由於會話資訊是由系統定時採樣得到的,因此,管理員可以通過設定採樣的頻率來收集會話的資訊,預設為15秒。頂層會話工具也可以作為效能管理員的子工具被嵌套使用。
Oracle專家的使用
Oracle專家(Oracle Expert)是整合在調節包(Tuning)中用來對系統效能進行最佳化和調整的工具。
1. 建立最佳化會話
(1)在伺服器的案頭選擇【開始】/【程式】/【Oracle-OraHome90】/【Enterprise Management Packs】/【Tuning】/【Expert】選項,將出現如圖13.18所示的Expert登入介面。
有兩種登入方式。
【登入到Oracle Management Server】:通過管理伺服器進行管理。
【登入到獨立的資料檔案庫】:在沒有管理伺服器的環境下選用。
選擇【登入到Oracle Management Server】單選鈕,按照管理員登入。
(2)出現如圖13.19所示的建立最佳化會話嚮導的歡迎介面,最佳化會話是Oracle Expert 在最佳化資料庫環境收集分析資料,產生最佳化建議方案、報告和實施指令碼的基本配置。初次使用 Oracle Expert 時需要建立一個新的最佳化會話。
選擇【建立一個新的最佳化會話】單選鈕,單擊按鈕。
(3)出現如圖13.20所示的最佳化會話嚮導的建立介面,在【要最佳化哪個資料庫】下拉式清單方塊中選擇“myoracle.mynet”,在【如何命名新的最佳化會話】文字框中輸入“建立最佳化會話”,單擊按鈕。
(4)出現如圖13.21所示的建立最佳化會話的【範圍】選項卡,用於設定最佳化的範圍和最佳化會話的特徵。
最佳化範圍的主要設定包括。
【檢查常式最佳化】:使用此最佳化範圍來確定是否設定了正確的最佳化參數以及資料庫常式是否能夠有效利用系統資源。
【檢查SQL複用可能性】:使用此最佳化範圍來確定最佳化會話工作量是否包含性質相同而文法上稍有不同的SQL語句。這樣的 SQL 陳述式必須被單獨分析和快取。如果文法上的差異已被排除,那麼Oracle Expert將快取該語句的單個版本,允許應用程式重複使用該快取的 SQL 陳述式。
【檢查相應的空間管理】:使用此最佳化範圍來評估資料庫空間管理問題,如資料表空間結構、方案對象的大小調整和布局,以及資料庫使用者的資料表空間分配。
【檢查最佳的資料訪問】:使用此最佳化會話來最佳化指定表的索引,並檢查需要重建的索引。共有3種選項。選擇【對執行效能最差的 SQL 陳述式引用的表執行綜合索引評估】單選鈕,Oracle Expert 將自動在執行效能最差的 SQL 陳述式 (在最佳化會話工作量中標識) 引用的表中集中進行資料訪問最佳化,最佳化會話的 SQL 陳述式將根據每個語句的每次執行的物理讀取比率來劃分等級,Oracle Expert 也將自動檢查目標表中現有索引上的索引片段。選擇【對指定的表進行綜合索引評估】單選鈕,Oracle Expert 將在指定的特定方案或表中集中進行資料訪問最佳化,Oracle Expert 也將自動檢查目標表中現有索引上的索引片段。如果只希望執行索引片段檢查,則選擇【對指定的表進行索引片段評估】單選鈕。Oracle Expert 將只標識目標表中的索引,該目標表必定是遇到了索引滯流,並且需要重建以提高效能。
有關最佳化會話的特性參數設定包括。
【應用程式類型】:向Oracle Expert表明資料庫環境中使用的工作量類型。這使得 Oracle Expert 可以根據工作量類型來最佳化資料庫。可能的值為:OLTP(OLTP工作量通常對包含混合讀寫請求的表使用需要快速回應時間的簡單查詢)、 資料倉儲(資料倉儲工作量通常對大型的,通常為唯讀資料庫表使用綜合查詢)和多用途(多用途工作量通常具有非常寬的回應時間限制,其特徵通常是一個或少數幾個使用者進行大量寫密集型的交易處理)。
【關閉時間容差】:可以確定系統的建議案將傾向於最佳化恢複還是最佳化效能。如果容差很大,Oracle Expert 將最佳化效能。如果容差很小,Oracle Expert將最佳化恢復。
【峰值邏輯寫速率】:向Oracle Expert 表明最大寫入交易處理量,該資訊用來評估伺服器是否已配置為支援預期的寫入交易處理速率。
【使用的表格應用程式】:告知 Oracle Expert 是否在資料庫環境中使用表格應用程式。Oracle Expert 包含專用於表格應用程式的規則,如為常式設定開啟遊標的最小數量等。
【綜合分析】:告訴Oracle Expert在當前資料庫中有完整的工作量。
【最佳化程式驗證】:通知Oracle Expert在實施建議案之前對建議案加以驗證測試,以確保充分改善了效能。Oracle Expert 建議只實施那些確實能改善效能的建議案。
(5)圖13.22所示為建立最佳化會話的【收集】選項卡,指定要為最佳化會話收集的資料的類型,包括系統、資料庫、常式、方案和工作量5類。如果某個收集類被被啟用,表明該資訊對當前最佳化範圍是必需的。如果整行被禁用,則表明當前最佳化範圍不需要該資訊。如果收集類選項被啟用,但【收集類】複選框未被選擇,【上次收集時間】儲存格和【選項是否已設定】儲存格將被禁用,表示該類資訊將不會被收集,但通過選擇【收集類】複選框可使它能被收集。
【上次收集時間】儲存格顯示每類資料上一次收集的日期和時間。
【是否已設定選項】儲存格表示某一類是否已準備好可進行收集。
(6)圖13.23所示為建立最佳化會話的【複查】選項卡介面,用於在最佳化會話和SQL 記錄收集的分層視圖中查看已收集的資料。
(7)圖13.24所示為建立最佳化會話的【建議案】選項卡介面, 用於複查 Oracle Expert 作為分析最佳化會話資料的一部分產生的建議案。單擊【產生】按鈕系統將自動產生建議方案。
(8)圖13.25所示為建立最佳化會話的【指令碼】選項卡介面,顯示有關 Oracle Expert 可建立的、能夠協助實施當前建議案的檔案和指令碼的說明。同時還顯示 Oracle Expert 建立每個檔案的位置。
2. 分析最佳化會話
分析最佳化會話用於由系統自動對建立的最佳化會話進行分析,得到一份評估報告。
(1)在【工具列】選擇【報告】/【分析】選項,如圖13.26所示。
(2)出現如圖13.27所示介面,提示將分析報告儲存在網頁中供開啟查看,單擊“確定”按鈕。
(3)開啟產生的網頁,系統已經自動產生了分析報告,主要的方麵包括。
建議案概要。
常式分析(包括資料庫常式分析、相容參數、並行查詢參數評估、排序參數評估、SGA 參數評估、作業系統特定參數評估、爭用問題評估、共用伺服器選項)。
推薦回退段的空間管理建議案。
3. 系統效能的自動最佳化
Oracle Expert提供了對系統效能的自動最佳化功能。
單擊選擇資料庫myoracle.mynet,在【工具列】選擇【自動最佳化】/【開始】選項將執行對Oracle 9i資料庫系統效能的自動最佳化,如圖13.28所示。
索引調節嚮導
索引調節嚮導(Index Tuning Wizard)是整合在企業管理器中可以尋找並最佳化資料庫中的索引問題。使用索引的目的是要提高對資料庫表中資料進行訪問的速度。Index Tuning Wizard 將對訪問並更新某些表的 SQL 陳述式進行檢查,確定表的索引是否正確編入。對於某些有可能受益於索引最佳化的表,嚮導將引導管理員逐步完成評估步驟,並進行所需的更改,以便實施索引建議方案。
(1)在按照登入【管理伺服器】後的【企業管理器】的【管理目標導航器】中選擇要進行索引效能分析的資料庫“myoracle.mynet”,在【工具列】選擇【工具】/【Tuning Pack】/【Index Tuning Wizard】選項,如圖13.29所示。
(2)出現如圖13.30所示的索引調節嚮導的【歡迎使用】介面,單擊按鈕。
(3)出現如圖13.31所示的索引調節嚮導的【應用程式類型】介面,用於選擇目標資料庫的應用程式類型,瞭解資料庫應用程式的類型有助於 Index Tuning Wizard 確定要建議的索引的類型和數量。該資訊還有助於確定是否使用某種資料庫功能。有3種選項。
【聯機交易處理(OLTP)】:應用程式必須提供快速的終端使用者回應時間。OLTP應用程式的一個典型樣本是銀行系統,該系統的聯機客戶賬戶交易處理要求資料庫能快速響應。
【資料倉儲】:應用程式提供對大量資料的靈活存取。資料倉儲應用程式的一個樣本是分析人員用來進行產品調查的一個消費品市場資料庫。
【多用途】:有些資料庫可用於多個應用程式類型,包括 OLTP 和資料倉儲的組合類別型。這裡選擇【多用途】單選鈕,單擊按鈕。
(4)出現如圖13.32所示的索引調節嚮導的【方案選擇】介面,用於指定要在何處搜尋索引的最佳化機會,有兩個選項。
【任意方案】:Index Tuning Wizard 將在資料庫中的所有方案中搜尋索引最佳化機會。這是推薦使用的選項,因為如果將所有方案包括在搜尋範圍內將得到更為有效索引建議案。
【已選方案】:Index Tuning Wizard 將只在已選方案中搜尋索引最佳化機會。如果資料庫管理員要將對索引問題的搜尋範圍限制在其管理的方案範圍內,應使用該選項。通過這種搜尋得到的索引建議案的效果會較差,因為有許多方案未包括在搜尋範圍中。
這裡選擇【任意方案】單選鈕,單擊按鈕。
(5)出現如圖13.33所示的索引調節嚮導的【索引建議案】介面,單擊【產生】按鈕系統將自動對系統使用的索引效能進行分析和評價,該過程可能持續幾分鐘,具體時間根據具體的方案以及分析過程中涉及的 SQL 陳述式的數量而定。該操作在執行過程中將顯示在“建議案”視窗中,使用該視窗可以監視評估進程的進度。如果沒有檢查出問題,將顯示“未檢查到任何索引問題”的資訊,單擊按鈕。
(6)出現如圖13.34所示的【分析報告和指令碼】介面,產生索引建議案後,可使用Index Tuning Wizard來查看、儲存和列印所產生的分析報告和相關指令碼。
(7)出現如圖13.35所示的【完成】介面。
Index Tuning Wizard 為使用索引建議案提供了幾個選項。
【實施建議案】:如果要立即實施索引建議案,則選擇該複選框。
【另存新檔實施指令碼】:如果要建立可供今後複查、修改和實施的 SQL 指令碼,則選擇該複選框。
【另存新檔 Oracle Expert 最佳化會話】:如果已安裝Oracle Expert,並且要在該 Index Tuning Wizard 會話中建立一個 Oracle Expert 最佳化會話,則選擇該複選框。
這裡選擇【另存新檔 Oracle Expert 最佳化會話】複選框,單擊“確定”按鈕。
一般而言,當資料庫應用程式執行SQL的效能下降,或者為資料庫開發了新的應用程式,或者修改了現有應用程式的SQL語句,都可以執行索引調節嚮導,用於對基於執行的成本的Oracle應用程式進行最佳化。
SQL分析的使用
SQL分析(SQL Analyze)是整合在企業管理器中用於對具體的SQL語句進行效能分析的工具。完成同樣任務的SQL語句,按照不同的文法進行書寫,可以得到不同的執行效能。Oracle SQL分析工具提供了直觀觀察SQL語句執行效能的手段,管理員和程式開發人員可以通過對SQL語句不斷進行最佳化來得到最佳的執行方案,從而提高系統的效能。
(1)在【企業管理器】的【管理目標導航器】中選擇要進行索引效能分析的資料庫“myoracle.mynet”,在【工具列】選擇【工具】/【Tuning Pack】/【SQL Analyze】選項。
(2)出現如圖13.36所示的Oracle SQL分析的初始化參數介面。
Oracle SQL分析工具對每個資料庫記錄了3類資訊的SQL分析。
初始化參數:包括常式參數和會話參數。
TopSQL:頂層SQL,使用系統資源密集的SQL語句的分析結果。
SQL記錄:所有使用的SQL語句的分析結果。
(3)如圖13.37所示為SQL分析的TopSQL介面,單擊選擇SQL文本,將顯示該語句對應的效能分析參數,這些參數是Oracle資料庫系統為SQL語句選擇執行代價最佳化的依據。管理員瞭解這些參數的目的,是儘可能地通過設計使用資源最少的SQL語句來完成同樣的工作,從而最佳化系統的效能。
管理員可以利用該工具來測試不同的SQL語句使用的系統資源,最佳化程式設計。
鎖管理器
當資料庫的使用者數目越來越多,對伺服器的資源將產生競爭,如果沒有合理的機制來協調這種資源的競爭,就可能導致一些使用者佔用大量的資源,而另外一些使用者永遠得不到其希望的資源,這稱為死結。死結發生後將大大影響系統的效能。這就猶如在公路上發生了交通事故後,其他汽車也不能或只能繞道行駛,交通系統的效能大大降低。而管理員要做的就是在發生事故時,趕緊查明在哪裡發生的事故,然後儘快解決。
鎖管理器就是Oracle提供的對系統資源使用的鎖進行監控的工具。通過使用該工具,管理員可以發現哪些使用者導致了死結的發生,從而得出解決的方法。
(1)在按照登入管理伺服器後的企業管理器中,在【管理目標導航樹】中選擇要進行索引效能分析的資料庫“myoracle.mynet”,在【工具列】選擇【工具】/【Diagnostic Pack】/【Lock Monitor】選項。
(2)出現如圖13.38所示的鎖管理器介面,在【工具列】選擇【下鑽】有4個選項,可以協助管理員分析系統資源有無死結發生。
【記錄資料】:對曆史資料的記錄。
【使用者類型鎖圖表】:使用者獲得的鎖。
【阻塞/等待鎖圖表】:正在等待或處於阻塞/等待狀態的鎖。
【終止會話】:終止該使用者的會話。
以上介紹了一些主要的可以對效能進行分析和調整的整合工具,由於這些工具的功能都被整合在了“效能管理員”裡。
效能管理員
Oracle Performance Manager是整合在Oracle 企業管理組件(Oracle Enterprise Management Packs)中的效能分析和調整工具,用於對節點、資料庫和HTTP伺服器的資源和作業系統效能進行分析和管理。
(1)在伺服器的案頭選擇【開始】/【程式】/【Oracle-OraHome90】/【Enterprise Management Packs】/【Diagnostics】/【Performance Manager】選項,出現如圖13.39所示的登入介面。
有兩個選項。
【登入到Oracle Management Server】:登入到管理伺服器後使用效能管理員。
【獨立,無資料檔案庫串連】:在直接連接資料庫時使用,若選擇該項,效能管理員介面將出現亂碼。
選擇【登入到Oracle Management Server】單選鈕,並在【管理員】、【口令】文字框中按照自己的設定輸入。
(2)出現如圖13.40所示的效能管理員介面,效能管理員可以對下列資源進行效能分析。
OLAP Services:對線上分析處理服務效能進行分析。
並行管理器:對並行資料庫系統效能進行分析。
資料庫:對資料庫的效能進行分析。
HTTP伺服器:對HTTP伺服器的效能進行分析。
節點:對節點管理的資源進行效能分析。
SQL Servers:對SQL Server伺服器進行效能分析。
(3)若出現亂碼的現象,可按照下列步驟重新登入資料庫。在【管理目標導航器】中選擇【網路】/【資料庫】/【myoracle.mynet】選項,重新登入資料庫,出現如圖13.41所示的資料庫登入介面,單擊【串連詳細資料】按鈕。
(4)出現如圖13.42所示的串連詳細資料介面,有兩個選項。
【直接連接】:客戶機直接連接監控資源,容易產生亂碼。
【通過Intelligent Agent串連】:通過智能代理建立串連,不產生亂碼。
選擇【通過Intelligent Agent串連】單選鈕,在【代理主機】文字框中自動出現管理伺服器的名稱,單擊【確定】按鈕,這樣就可以消除效能管理員管理中出現的亂碼現象。