文章詳情頁
用腳本和查詢主動監(jiān)視Oracle 9i性能
瀏覽:4日期:2023-11-13 08:49:15
超過250個配置參數(shù)、上千個測量值要監(jiān)視,這些都讓Oracle的治理員監(jiān)視其Oracle數(shù)據(jù)庫整體健康的工作不是一項輕松的任務。Oracle提供了各種工具來監(jiān)視性能,但是這還是太多。要想有效地監(jiān)視你Oracle數(shù)據(jù)庫的健康,你就需要熟悉下面的腳本和查詢:數(shù)據(jù)緩沖區(qū)命中率警報會報告數(shù)據(jù)緩沖區(qū)命中率低于預設闕值的次數(shù)。 重做日志空間請求警報會在請求的數(shù)量大于0的時候提示出錯。假如這種情況發(fā)生了,你可能需要增加log_buffer參數(shù)的值。 共享池爭用警報會提示你出現(xiàn)了共享池爭用以及和鎖定相關的問題。系統(tǒng)等待警報查詢會詢問Oracle的事件結構,以確定由于爭用而出現(xiàn)過多等待的事件。庫緩沖失敗警報查詢會查找?guī)炀彌_失敗率。假如庫緩沖失敗率超過.02,你就需要增加shared_pool_size的值來補救。 數(shù)據(jù)庫編寫器爭用警報會查找不良查詢總長的值、寫入請求和數(shù)據(jù)庫編寫器工具(DBWR)的檢查點。當寫入請求的長度大于3或者大于DBWR 檢查點的等待次數(shù),你就需要調整數(shù)據(jù)庫編寫器的進程。 數(shù)據(jù)字典失敗率警報會提示你對數(shù)據(jù)字典元數(shù)據(jù)請求過高的次數(shù)。有時你可以通過增加shared_pool_sizeinit.ora這個參數(shù)的值來緩解這個問題。數(shù)據(jù)字典對象警告報告會揭示對Oracle數(shù)據(jù)字典的內部爭用和字典元數(shù)據(jù)請求過高的次數(shù)。 仔細研究一下 現(xiàn)在讓我們更加仔細地看一下這些腳本是如何工作的。STATSPACK這個工具按時間來處理Oracle的調配信息,并把這些信息記錄在多個表格里。這些表格的名稱會反映出Oracle內部查看表v$,這些名字諸如stats$sysstat和stats$sql_summary。知道了這一點,你就可以編寫一些簡單的Oracle查詢,它們會顯示性能的走勢信息。然后你就可以處理這些性能信息,并把它們送到預示模型,例如線性回歸,這會準確地告訴你更改你系統(tǒng)全局區(qū)域(System Global Area,SGA)內部結構的正確次數(shù)。 Listing A包含有使用這些性能信息的例子。這個腳本會生成一個在一段時間內庫緩沖區(qū)失敗率的連續(xù)總計,還會引用stats$librarycache表格。 這個腳本的輸出會指出,你需要在這一期間內通過cron job或者dbms_job為shared_pool_size計劃安排額外的內存,見圖A。
圖A庫緩沖失敗率腳本的輸出。 動態(tài)性能重新配置 Table A高屋建瓴地查看一些主要的事件,這些事件能夠引發(fā)動態(tài)的調配重新配置。為了說明這一點,我只會把重點放在表格里所出現(xiàn)的SGA的主要區(qū)域里。
表A主要的重新配置觸發(fā)器。 很顯然,庫緩沖失敗率過高表示共享池太小,Oracle七個數(shù)據(jù)緩沖池中任何一個的數(shù)據(jù)緩沖命中率低于90%都表示,你應該從數(shù)據(jù)庫的其他區(qū)域里分一部分內存出來,重新分配給數(shù)據(jù)緩沖區(qū)。對于排序這樣的操作,你要看一下程序全局區(qū)域(Program Global Area,PGA)里最佳執(zhí)行的百分率,并在碰到排序操作的最佳執(zhí)行率低于95%的時侯增加PGA集合目標參數(shù)的值。 針對數(shù)據(jù)緩沖區(qū)和共享池大小的規(guī)則是直接了當?shù)模碌膒ga_aggregate_target參數(shù)能夠確保(對這些信息)更進一步的研究。作為一個通用的規(guī)則,當下列情況發(fā)生的時候,你就要更改pga_aggregate_target的值: 當v$sysstat的值――用于一次通過的估計PGA靜態(tài)內存(estimated PGA memory for one-pass)超過pga_aggregate_target時,你就要增加pga_aggregate_target的值。 當v$sysstat的值――用于靜態(tài)工作區(qū)執(zhí)行-多次通過(workarea executions—multipass)大于1%時,數(shù)據(jù)庫就能夠從額外的內存獲益。 你可能會為PGA分配過多的內存,這樣在v$sysstat數(shù)據(jù)列的值――工作區(qū)執(zhí)行-最佳(workarea executions—optimal)達到100%的時候,可能就要考慮減少pga_aggregate_target的值。 正如你能夠看到的那樣,對Oracle數(shù)據(jù)庫的主動監(jiān)視會是相當復雜的。由于有上百個測量值和參數(shù)需要監(jiān)視和重新設置,所以對Oracle的調整將會是非常具有挑戰(zhàn)性的。但是有了Oracle的性能測試工具和主要幾個重新配置激發(fā)器的知識,你就可以開始調整好所有的事了。


標簽:
Oracle
數(shù)據(jù)庫
排行榜
