日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Oracle自动性能统计

發(fā)布時(shí)間:2023/11/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle自动性能统计 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Oracle自動(dòng)性能統(tǒng)計(jì)

??高效診斷性能問題,需要提供完整可用的統(tǒng)計(jì)信息,好比醫(yī)生給病人看病的望聞問切,才能夠正確的確診,然后再開出相應(yīng)的藥方。Oracle數(shù)據(jù)庫(kù)為系統(tǒng)、會(huì)話以及單獨(dú)的sql語句生成多種類型的累積統(tǒng)計(jì)信息。本文主要描述oracle性能統(tǒng)計(jì)涉及到的相關(guān)概念及統(tǒng)計(jì)對(duì)象,以更好的利用統(tǒng)計(jì)信息為性能調(diào)整奠定基礎(chǔ)。

一、性能統(tǒng)計(jì)信息的幾個(gè)術(shù)語

  • 增量值(delta)

??性能統(tǒng)計(jì)信息依賴于delta值的累計(jì),即增量值。增量值反映了在某個(gè)特定時(shí)段某個(gè)特定事件的趨勢(shì),或者說波動(dòng)的幅度。通過對(duì)比在開始期間統(tǒng)計(jì)的累計(jì)值和結(jié)尾處的累計(jì)值之間的差異,才能夠更清晰的了解該項(xiàng)值在系統(tǒng)不同負(fù)載時(shí)間段所需要的資源開銷以及用于定位性能瓶頸。

??在Oracle數(shù)據(jù)庫(kù)中,可以通過查詢V$SESSTAT和V$SYSSTAT來查詢統(tǒng)計(jì)值的累計(jì)情況。由于這2個(gè)視圖為動(dòng)態(tài)性能視圖,因此,這2個(gè)視圖的數(shù)據(jù)收集的僅僅是自實(shí)例啟動(dòng)以來的統(tǒng)計(jì)數(shù)據(jù)。如此這般,那數(shù)據(jù)庫(kù)關(guān)閉后所有的統(tǒng)計(jì)信息丟失腫么辦,不用著急,有AWR來定期進(jìn)行保存。

  • 度量(metric)

??度量是Oracle數(shù)據(jù)庫(kù)收集的另一種統(tǒng)計(jì)類型。一個(gè)度量被定義為在一些累積統(tǒng)計(jì)信息的變化率。該速率可以對(duì)各種單元進(jìn)行測(cè)量,包括時(shí)間、事務(wù)或數(shù)據(jù)庫(kù)調(diào)用。例如,每秒的數(shù)據(jù)庫(kù)調(diào)用是一個(gè)度量。度量值可以從動(dòng)態(tài)性能視圖查詢獲得。其中的值是在一個(gè)相當(dāng)小的時(shí)間間隔的平均值,通常為60秒。最近的度量值的歷史是在V$視圖,同時(shí)一些數(shù)據(jù)也由AWR快照進(jìn)行持久化保持。

  • 采樣(sampling)

??Oracle對(duì)活動(dòng)會(huì)話過程中出現(xiàn)的相關(guān)等待進(jìn)行采樣,并將這些數(shù)據(jù)收集到內(nèi)存中,可以用V$視圖進(jìn)行訪問,也可以將其生成報(bào)告,用于快速或者實(shí)時(shí)的定位性能問題。那這個(gè)部分就是所謂的ASH,活動(dòng)會(huì)話歷史。同時(shí)這些數(shù)據(jù)由AWR快照處理也將其寫入持久存儲(chǔ)。

  • 基線(baseline)

??有數(shù)據(jù),能比對(duì),才能夠真正反映問題的實(shí)質(zhì)。那么在Oracle數(shù)據(jù)庫(kù)里邊,我們可以將其業(yè)務(wù)負(fù)載高峰期的活動(dòng)會(huì)話歷史數(shù)據(jù),更確切的說是AWR持久化的數(shù)據(jù)貼個(gè)標(biāo)簽,這個(gè)標(biāo)簽就是所謂的基線。因此基線就是某個(gè)特定時(shí)段業(yè)務(wù)高峰期數(shù)據(jù)庫(kù)整體性能的一個(gè)基準(zhǔn)報(bào)告,一旦當(dāng)后續(xù)數(shù)據(jù)庫(kù)出現(xiàn)性能問題或運(yùn)行不佳的時(shí)候,通過使用基線,與性能問題期間的性能統(tǒng)計(jì)數(shù)據(jù)進(jìn)行比對(duì),得出兩者的差異報(bào)告,有助于問題的定位于解決。

二、系統(tǒng)級(jí)別性能統(tǒng)計(jì)

??操作系統(tǒng)基本性能統(tǒng)計(jì)提供了系統(tǒng)主要硬件部件的使用和性能的信息,以及操作系統(tǒng)本身的性能。這些信息對(duì)于檢測(cè)潛在的資源消耗,如CPU周期和物理內(nèi)存,以及檢測(cè)外設(shè)性能不良,如磁盤驅(qū)動(dòng)器是至關(guān)重要的。 操作系統(tǒng)統(tǒng)計(jì)是硬件和操作系統(tǒng)工作狀況的重要的指標(biāo)。主要包括以下重要信息。

  • CPU統(tǒng)計(jì)信息

??CPU利用率是調(diào)優(yōu)過程中最重要的操作系統(tǒng)統(tǒng)計(jì)。應(yīng)獲取整個(gè)系統(tǒng)和多處理器系統(tǒng)中單個(gè)CPU的利用率。每個(gè)CPU的利用率可以檢測(cè)單線程和可擴(kuò)展性問題。大多數(shù)操作系統(tǒng)在用戶空間或內(nèi)核空間顯示CPU時(shí)間開銷,這些額外的統(tǒng)計(jì)數(shù)據(jù)可以更好地分析CPU實(shí)際執(zhí)行情況。

??在僅僅單個(gè)應(yīng)用程序運(yùn)行的Oracle數(shù)據(jù)庫(kù)系統(tǒng)中,通常情況下,該業(yè)務(wù)系統(tǒng)在用戶空間中運(yùn)行數(shù)據(jù)庫(kù)活動(dòng)。服務(wù)于數(shù)據(jù)庫(kù)的活動(dòng)請(qǐng)求(如調(diào)度、同步、I/O、內(nèi)存管理、進(jìn)程/線程創(chuàng)建和刪除)則在內(nèi)核模式(空間)下運(yùn)行。在一個(gè)CPU充分利用的系統(tǒng)中,一個(gè)健康的Oracle數(shù)據(jù)庫(kù)在用戶空間CPU的開銷通常在運(yùn)行65%到95%之間。

??可以通過查詢V$osstat視圖捕獲硬件和操作系統(tǒng)級(jí)別的相關(guān)信息,使得判定硬件級(jí)資源存在的問題更容易。V$sysmetric_history視圖保留主機(jī)一小時(shí)內(nèi)CPU使用度量,以每一分鐘時(shí)間間隔來表示的CPU使用率。V$?sys_time_model視圖提供了有多少CPU被Oracle數(shù)據(jù)庫(kù)使用。這兩組統(tǒng)計(jì)數(shù)據(jù)更能夠確定Oracle數(shù)據(jù)庫(kù)或其他系統(tǒng)活動(dòng)是否是CPU問題的原因。

  • 虛擬內(nèi)存統(tǒng)計(jì)信息

??虛擬內(nèi)存統(tǒng)計(jì)主要用于判斷系統(tǒng)上是否存在大量分頁(yè)或交換活動(dòng)。當(dāng)大量分頁(yè)和交換時(shí),系統(tǒng)性能會(huì)迅速下降。單個(gè)進(jìn)程的內(nèi)存統(tǒng)計(jì)數(shù)據(jù)可以檢測(cè)內(nèi)存泄漏是否是由于某個(gè)進(jìn)程釋放內(nèi)存失敗而導(dǎo)致。

  • 磁盤I/O統(tǒng)計(jì)信息

??I/O子系統(tǒng)的性能決定或影響著數(shù)據(jù)庫(kù)的性能。大多數(shù)操作系統(tǒng)對(duì)磁盤提供一些擴(kuò)展的統(tǒng)計(jì)信息。最重要的磁盤統(tǒng)計(jì)信息是當(dāng)前的響應(yīng)時(shí)間和磁盤隊(duì)列的長(zhǎng)度。這些統(tǒng)計(jì)數(shù)據(jù)顯示磁盤是否處于最佳狀態(tài),或者磁盤是否正在超負(fù)荷工作。

??測(cè)量I/O系統(tǒng)的正常性能;取決于所使用的硬件,單個(gè)塊讀取范圍的典型值從5到20毫秒。如果硬件顯示的響應(yīng)時(shí)間遠(yuǎn)高于正常的性能值,那么它表現(xiàn)不佳或超負(fù)荷工作。這就是瓶頸。如果磁盤隊(duì)列開始超過兩個(gè),那么磁盤是一個(gè)潛在的瓶頸系統(tǒng)。

??Oracle數(shù)據(jù)庫(kù)提供了一些在I/O調(diào)用時(shí)的I/O統(tǒng)計(jì)信息。這些統(tǒng)計(jì)數(shù)據(jù)在以下視圖獲取。

??v$iostat_consumer_group :

????在啟用資源計(jì)劃后,該視圖捕獲I/O相關(guān)信息,是所有資源消費(fèi)群組統(tǒng)計(jì)。數(shù)據(jù)庫(kù)樣本統(tǒng)計(jì)每小時(shí)累積并將它們存儲(chǔ)在AWR中。

??v$iostat_file :

????該視圖是基于磁盤文件I/O的統(tǒng)計(jì),主要用于以文件級(jí)別展現(xiàn)文件訪問頻度。

??v$iostat_function:

????該視圖是基于I/O數(shù)據(jù)庫(kù)功能(如LGWR和DBWR)的統(tǒng)計(jì)數(shù)據(jù)。

  • 網(wǎng)絡(luò)統(tǒng)計(jì)信息

??用于確定網(wǎng)絡(luò)或網(wǎng)絡(luò)接口是否過載或沒有最佳執(zhí)行。在今天的網(wǎng)絡(luò)應(yīng)用中,網(wǎng)絡(luò)延遲可以是實(shí)際用戶響應(yīng)時(shí)間的很大一部分。出于這個(gè)原因,這些統(tǒng)計(jì)是一個(gè)關(guān)鍵的調(diào)試工具。

??v$IOSTAT_NETWORK:

????該視圖提供網(wǎng)絡(luò)相關(guān)統(tǒng)計(jì)信息查詢

三、數(shù)據(jù)庫(kù)統(tǒng)計(jì)信息

??數(shù)據(jù)庫(kù)統(tǒng)計(jì)提供數(shù)據(jù)庫(kù)上的負(fù)載類型以及數(shù)據(jù)庫(kù)使用的內(nèi)部和外部資源的信息。

  • 等待事件

??等待事件是由服務(wù)器進(jìn)程或線程遞增的統(tǒng)計(jì)數(shù)據(jù),也就是說在繼續(xù)處理當(dāng)前某項(xiàng)任務(wù)之前,它必須等待某個(gè)事件完成才能繼續(xù)處理。等待事件數(shù)據(jù)揭示了可能影響性能的問題的各種癥狀,如鎖存爭(zhēng)用、緩沖區(qū)爭(zhēng)用和I/O爭(zhēng)用。

??為了更好的分析不同等待事件,Oracle將等待事件進(jìn)行了分類。等待事件分類包括:管理,應(yīng)用程序,集群,提交,并發(fā),配置,空閑,網(wǎng)絡(luò),其他,調(diào)度,系統(tǒng)I/O,和用戶I/O。

?? Author : Leshami

?? Blog :?http://blog.csdn.net/leshami

??下面的列表包括一些類中的等待的常見示例:

?? ??1. 應(yīng)用程序:由行級(jí)鎖定或顯式鎖命令所引起的鎖等待

?? ??2. 提交:提交后等待重做日志寫入確認(rèn)

?? ??3. 空閑:表示會(huì)話不活動(dòng)的等待事件,例如來自客戶端的sql*net消息

?? ??4. 網(wǎng)絡(luò):等待數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送

?? ??5. 用戶I/O:等待塊被讀取磁盤

  • 時(shí)間模型統(tǒng)計(jì)

?? 基于時(shí)間模型統(tǒng)計(jì),主要是基于操作類型測(cè)量在數(shù)據(jù)庫(kù)中花費(fèi)的時(shí)間的統(tǒng)計(jì)信息。最重要的時(shí)間模型統(tǒng)計(jì)是數(shù)據(jù)庫(kù)時(shí)間,即DB Time。數(shù)據(jù)庫(kù)時(shí)間表示在數(shù)據(jù)庫(kù)調(diào)用中所花費(fèi)的總時(shí)間,是實(shí)例工作負(fù)載量的總指示器。

?? 在Oracle數(shù)控中,每個(gè)組件都有自己的統(tǒng)計(jì)數(shù)據(jù)。因此通過該組件與整體DB Time進(jìn)行比對(duì),可以很好地衡量這個(gè)組件的性能,或者說這個(gè)組件占據(jù)整個(gè)DB Time的百分比。如果能夠基于這些開銷過大的組件來進(jìn)行調(diào)整,也即是整個(gè)DB Time開銷的時(shí)間更少。

DB Time:

??即所有花費(fèi)在數(shù)據(jù)庫(kù)層面調(diào)用時(shí)間的總和,包括所有會(huì)話(前臺(tái)進(jìn)程)以及非空閑等待,CPU時(shí)間等

?? DB Time 是從實(shí)例啟動(dòng)以來時(shí)間的累計(jì)測(cè)量。由于DB時(shí)間是由所有非空閑用戶會(huì)話的時(shí)間組合來計(jì)算的,所以DB時(shí)間可能超過實(shí)例開始后所經(jīng)過的實(shí)際時(shí)間。例如,已經(jīng)運(yùn)行了30分鐘的實(shí)例可能有四個(gè)活動(dòng)用戶會(huì)話,其累積DB Time大約為120分鐘。

更多關(guān)于時(shí)間統(tǒng)計(jì)模型可以參考:Oracle Time Model Statistics(時(shí)間模型統(tǒng)計(jì))

  • 活動(dòng)會(huì)話歷史(ASH)

??Oracle對(duì)當(dāng)前數(shù)據(jù)庫(kù)活動(dòng)會(huì)話,每秒進(jìn)行采樣,并將其最近10次的等待信息保存到v$session_wait,同時(shí)將其歸檔到活動(dòng)會(huì)話歷史表v$session_wait_history。這即是活動(dòng)會(huì)話歷史(ASH)。這些數(shù)據(jù)被保留在從SGA分配的特定內(nèi)存中,并且采用循環(huán)寫的方式,即采取LRU算法定期清理該部分緩存。說簡(jiǎn)單一點(diǎn),ASH采用的策略是:保存處于等待狀態(tài)的活動(dòng)session的信息,每秒從v$session_wait中采樣一次,并將采樣信息保存在內(nèi)存中。由于SGA中的活動(dòng)會(huì)話信息存儲(chǔ)在循環(huán)緩沖區(qū)中,系統(tǒng)活動(dòng)越大,可以在循環(huán)緩沖區(qū)中存儲(chǔ)的會(huì)話活動(dòng)的秒數(shù)越小。因此這些數(shù)據(jù)就需要定期將其寫入到磁盤,那就是由MMON進(jìn)程定期將部分?jǐn)?shù)據(jù)寫入到AWR。AWR采用的策略是:每小時(shí)對(duì)v$active_session_history進(jìn)行采樣一次,并將信息保存到磁盤中,并且保留8天(11g缺省值),8天后舊的記錄才會(huì)被覆蓋。這些采樣信息被保存在視圖wrh$_active_session_history中。而這個(gè)采樣頻率(1小時(shí))和保留時(shí)間(8天)可以根據(jù)實(shí)際情況進(jìn)行調(diào)整。

??活動(dòng)會(huì)話歷史通常包括以下數(shù)據(jù):

????SQL語句及SQLID

????用于執(zhí)行sql語句的sql計(jì)劃的sql計(jì)劃標(biāo)識(shí)符和哈希值

????SQL執(zhí)行計(jì)劃信息

????對(duì)象編號(hào)、文件號(hào)和塊號(hào)

????等待事件標(biāo)識(shí)符和參數(shù)

????會(huì)話標(biāo)識(shí)符和會(huì)話序列號(hào)

????模塊和動(dòng)作名稱

????會(huì)話的客戶端標(biāo)識(shí)符

????服務(wù)散列標(biāo)識(shí)符

????消費(fèi)組標(biāo)識(shí)符

  • 系統(tǒng)和會(huì)話統(tǒng)計(jì)信息

??可以從V$SYSSTAT和V$SESSTAT兩個(gè)視圖獲取大量系統(tǒng)級(jí)別以及會(huì)話級(jí)別的統(tǒng)計(jì)信息。

轉(zhuǎn)載于:https://www.cnblogs.com/timlong/p/7475470.html

總結(jié)

以上是生活随笔為你收集整理的Oracle自动性能统计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。