久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Oracle 9i 的增強型內存使用率查看表

瀏覽:34日期:2023-11-24 17:17:46
增強了的v$process查看表 Oracle已經通過增強v$process查看表來實現內存監控。v$process查看表里的新數據列答應你顯示當前所有Oracle進程的程序全局區(PGA)區域的細節。PGA是內存里的一個專門區域,被單獨的進程用來執行內存密集型函數,例如排序。 v$process查看表的三個新數據列包括pga_used_memory、pga_allocated_memory和 pga_max_memory。從這些刻度表里,你可以看到Oracle環境里各個后臺進程的實際內存利用率,還可以查看每個到數據庫的連接所需要的內存。為了說明這個問題,考慮一下下面這個查詢: col c1 heading 'ProgramName' format a30col c2 heading 'PGAUsedMemory' format 999,999,999col c3 heading 'PGAAllocatedMemory' format 999,999,999col c4 heading 'PGAMaximumMemory' format 999,999,999selectprogram c1,pga_used_mem c2,pga_alloc_mem c3,pga_max_mem c4fromv$processorder byc4 desc;這個例子深入到了Oracle數據庫引擎的行為中。例如,你可以看到Oracle的日志編寫器(LGWR)進程是PGA內存最大的消耗者,其原因是很清楚的:Oracle的日志編寫器進程必須把重做日志鏡像(redo log image)從Oracle的日志緩沖器(在內存里)里傳輸到在線重做日志文件系統里。你還可以看到Oracle的數據庫編寫器(DBW0)進程也有很高的內存占用率,這也是有原因的:Oracle的異步I/O進程必須使用大量的內存資源來保證所有數據庫的更改都被成功地寫到數據庫里。 各個進程所要使用的內存大小 在Oracle9i里查看內存使用的真實值就是查看各個進程的內存使用率。Oracle9i現在有一個共享的內存區域,叫做pga_aggregate_target。在使用Oracle的多線程服務器時, pga_aggregate_target參數的工作方法和Oracle的大內存池相類似,只有一個顯著的不同點。有了一個共享內存區域,Oracle的各個進程,在進行排序和散裂合并時,就可以不受限制地使用多達內存池總量5%的內存。這相對于Oracle8i來說是個重大的改進,它原來要求每個PGA區域的大小必須限制在sort_area_size初始化參數所設定的值里。 Oracle9i還提供了一個叫做v$pgastat的新字典查看表。v$pgastat查看表能顯示數據庫內每個內存區域內的內存使用率的總量。這些信息可以告訴你內存使用率的峰值,還能答應你根據對系統的相對壓力來調整內存需求。以下是一個簡單的對v$pgastat的查詢: column name format a40column value format 999,999,999select name,valuefromv$pgastatorder byvalue desc;你可以看到pga_aggregate_target的值以及這個實例所使用的所有內存區域的峰值。現在我們再來看看最佳、單周期和多周期的內存運行情況。 當Oracle的進程需要進行操作時,例如排序或者散裂合并,它就到pga_aggregate_target區域里的共享內存區里,嘗試取得足夠多的相互毗鄰的內存幀來執行操作。假如這個進程能夠立即取得這些內存幀,它就被標記為最優內存訪問。假如需要在單周期內通過pga_aggregate_target取得所需的內存,那么內存分配就被標記為單周期。假如所有的內存都在使用中,那么Oracle也許就不得不通過pga_aggregate_target在多周期內取得內存,這叫做多周期。 記住:內存的速度是非常非常快的,絕大多數排序或者散裂合并都是在幾微秒內完成的。Oracle答應單個進程最多使用pga_aggregate_target 5%的內存,并行操作最多可以被答應消耗PGA內存池30%的內存。 多周期運行顯示了內存的不足,所以你總應該分配足夠的內存以保證至少有95%連接上了的任務能夠最佳地獲得內存。 你可以查詢這里列出的v$sysstat查看表來取得workarea運行的信息: col c1 heading 'WorkareaProfile' format a35col c2 heading 'Count' format 999,999,999col c3 heading 'Percentage' format 99select name c1,cnt c2,decode(total, 0, 0, round(cnt*100/total)) c3from(select name,value cnt,(sum(value) over ()) totalfromv$sysstatwherename like 'workarea exec%');至少有95%的任務應該有最佳workarea運行情況。在以上的輸出中,你可以看到所有的workarea運行情況,它們能運行在最佳、單周期和多周期模式下。 這里提供了和pga_aggregate_target區域大小相關的重要信息。它還能指示出內存區域的過量分配。假如最佳workarea運行的百分比持續保持在98到100%,你就可以從pga_aggregate_target里心安理得地“盜取”內存幀,并把它們分配到Oracle SGA(例如db_cache_size)的其他區域里,那里可能更需要內存資源。查看各個workareas Oracle還提供了數據字典查看表,它能顯示SQL聲明的運行計劃里各個步驟所使用的內存大小。其價值對正確設置hash_area_size和其他內存密集參數的內存大小是不可估量的。 v$sql_workarea_active查看表顯示了Oracle9i數據庫里各個workarea的內存使用數量。 而且,Oracle提供了多個用來合并表格的方法,每個都需要不同數量的內存。Oracle9i SQL優化器能夠分辨分類歸并聯合、嵌套循環合并、、散裂合并和星型合并方法。在有些情況下,散裂合并比分類歸并聯合運行得更快,但是散裂合并需要更多的內存資源和對hash_area_size參數更高級的設置。 以下是對v$sql_workarea_active查詢表的查詢: Selectto_number(decode(SID, 65535, NULL, SID)) sid,operation_type OPERATION,trunc(WORK_AREA_SIZE/1024) WSIZE,trunc(EXPECTED_SIZE/1024) ESIZE,trunc(ACTUAL_MEM_USED/1024) MEM,trunc(MAX_MEM_USED/1024) 'MAX MEM',number_passes PASSfromv$sql_workarea_activeorder by 1,2;你可以看到SQL運行每一步的內存使用數量。一個SQL聲明執行Group By排序需要73 KB內存。你還可以看到運行散裂合并的兩個SQL聲明的系統ID(SID)。這些散裂合并分別使用了3到13 MB內存來建立內存中的散裂表。 一個非常重要的工具 Oracle正在成為最靈活、最復雜的數據庫治理系統之一。數據庫組件的內存使用查看表是治理你Oracle數據庫非常重要的工具。有了它,Oracle專家能夠更加輕易地保證內存使用率的所有設置對所有應用程序都是最優的。
標簽: Oracle 數據庫
主站蜘蛛池模板: 成人av教育 | 欧美精品一区二区三区在线 | 搜索黄色毛片 | 欧美成人黄色小说 | 亚洲精品免费视频 | 成人在线观看免费 | 91午夜精品一区二区三区 | 日韩成人免费在线 | 日本一区二区三区中文字幕 | 久热中文字幕 | 一级国产视频 | 精品久久久一区 | 91成人免费看片 | 国产福利电影一区 | 狠狠搞狠狠操 | 成人久久久精品乱码一区二区三区 | 国产成人精品综合 | 国产精品久久久久久久久小说 | 欧美激情一区二区三级高清视频 | 91久久综合| 中文字幕影院 | 91精品久久久久久久 | 91免费观看| 亚洲人在线观看视频 | 亚洲精品乱码久久久久久国产主播 | 日本久久www成人免 成人久久久久 | 日韩三级在线免费 | 欧美一级在线视频 | 特级做a爰片毛片免费看108 | 国产成人一区二区 | 欧美中文日韩 | 欧美第8页 | 在线91 | 国产精品美女www爽爽爽软件 | 在线视频91 | 99久久99热这里只有精品 | 亚洲精品久久 | 日韩免费精品视频 | 最新国产成人 | 一级毛片大全免费播放 | 99精品欧美一区二区三区 |