掛起但未癱瘓:附連內(nèi)存的 SGA 查詢(xún)
假設(shè)您使用 Oracle 企業(yè)管理器診斷和解決性能問(wèn)題。一天,出現(xiàn)了一個(gè)棘手的問(wèn)題:一個(gè)設(shè)計(jì)糟糕的應(yīng)用程序引起了嚴(yán)重的庫(kù)高速緩存鎖定問(wèn)題,并且數(shù)據(jù)庫(kù)呈現(xiàn)掛起狀態(tài)。您必須快速確定導(dǎo)致該問(wèn)題發(fā)生的會(huì)話(huà),并快速終止這些會(huì)話(huà)。
您可以啟動(dòng) Oracle 企業(yè)管理器來(lái)診斷此問(wèn)題。且慢!如果整個(gè)數(shù)據(jù)庫(kù)充滿(mǎn)了掛起的會(huì)話(huà),那么 Oracle 企業(yè)管理器中的查詢(xún)是否也會(huì)掛起?
如果使用 Oracle 數(shù)據(jù)庫(kù) 10g 第 2 版,則答案是否定的。正如我在第 2 部分中所介紹的,在該版本中,“在內(nèi)存訪問(wèn)模式下進(jìn)行監(jiān)控”選項(xiàng)使企業(yè)管理器可以直接從 SGA 內(nèi)存(而不是 V$SESSION)中選擇會(huì)話(huà)。因?yàn)樵谠撃J较吕@過(guò)了 SQL 層,掛起的數(shù)據(jù)庫(kù)就不會(huì)阻礙此查詢(xún)的執(zhí)行。相反,將自動(dòng)啟動(dòng)查詢(xún)。
讓我們看看該特性是如何工作的。在 Enterprise Manager 屏幕上,選擇 Performance 選項(xiàng)卡并滾動(dòng)到該頁(yè)面底部的“Additional Monitoring Links”部分,屏幕與下圖類(lèi)似。
注意紅色橢圓框中“Hang Analysis”的超鏈接。單擊該鏈接,將顯示一個(gè)與下圖類(lèi)似的屏幕。
該圖展示了各種“死”會(huì)話(huà)。在該示例中,您可以看到 SID 為 193 的會(huì)話(huà)(根會(huì)話(huà))已經(jīng)阻止了其他兩個(gè)會(huì)話(huà),即 192 和 214。該圖中的會(huì)話(huà)顏色表示會(huì)話(huà)受阻的時(shí)間?梢詥螕 SID 訪問(wèn) Session Details 屏幕,以獲取更多信息。
還記得 ORADEBUG 實(shí)用程序嗎?Oracle 企業(yè)管理器使用該實(shí)用程序獲得有關(guān)系統(tǒng)掛起的數(shù)據(jù)。啟用 SGA 直接連接時(shí),Oracle 將對(duì)每個(gè)實(shí)例使用一個(gè) SQL 收集器。該收集器隨企業(yè)管理器自動(dòng)啟動(dòng)。檢索到以下視圖中的數(shù)據(jù):
V$SESSION
V$SESSION_WAIT
V$SYSTEM_EVENT
V$SYSSTAT
附連內(nèi)存的 SGA 查詢(xún)是一個(gè)非常強(qiáng)大的特性,以后肯定能幫您解決棘手問(wèn)題。我們都對(duì)可“征服”數(shù)據(jù)庫(kù)的應(yīng)用程序有一種親切感,為什么呢?現(xiàn)在,您可以給出答案了。我認(rèn)為此特性是第 2 版一個(gè)最適用于數(shù)據(jù)庫(kù)管理員的特性。