首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 9i 會話監控與 SQL 審計:EM 會話詳情六大頁籤、關鍵指標解讀與長事務識別

     編輯:Oracle 資料庫相關知識

會話概念

Session = 用戶進程與服務器進程建立的邏輯連接,承載單位事務、SQL 執行、資源消耗。

EM 會話監控界面

  1. 目標數據庫 → 「會話」頁籤,默認顯示資源消耗 Top 會話
  2. 「會話顯示控制區」:按 CPU/邏輯讀/物理讀/空間排序
  3. 右鍵會話 → 「查看/編輯詳情」進入六大頁籤

截圖:

六大頁籤核心指標

頁籤關鍵信息排查用途
一般信息SID/Serial#、用戶/OS 用戶/機器/程序、狀態 (ACTIVE/INACTIVE)、登錄時間、最後調用時間識別會話來源、業務歸屬
SQL當前/上一條 SQL 文本、執行計劃、綁定變量、執行統計 (行數/耗時/緩存命中)定位高負載 SQL、綁定窺探問題
統計信息CPU 時間、邏輯/物理讀寫、排序/哈希/事務/提交/回滾次數量化會話資源佔用
鎖持有/請求鎖類型 (TM/TX/UL)、模式、阻塞對象、阻塞會話死鎖/鎖等待根因分析
打開游標游標數、SQL 文本、類型游標洩漏檢測 (超過 OPEN_CURSORS)
事務事務 ID、開始時間、UNDO 用量、使用的回滾段長事務識別、UNDO 表空間壓力源

截圖:

長事務/阻塞會話快速識別腳本

-- 長事務 (> 30 分鐘)
SELECT s.sid, s.serial#, s.username, s.machine, s.logon_time,
       t.start_time, t.used_ublk, t.used_urec
FROM v$session s, v$transaction t
WHERE s.taddr = t.addr
  AND (SYSDATE - t.start_time) * 24 * 60 > 30;

-- 阻塞鏈
SELECT blocking_session, sid, serial#, username, event, seconds_in_wait
FROM v$session
WHERE blocking_session IS NOT NULL;

最佳實踐

  • 設置告警:ACTIVE 會話 > 閾值、長事務 > 30 分鐘、阻塞會話存在 → 郵件/短信。
  • 定期導出 Top SQL (按 CPU/GETS) 納入調優計劃。
  • 開發規範:禁止無限循環、大事務拆分、提交頻率控制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved