Oracle AWR(自動化工作負載存取)是 Oracle 數據庫用于收集、維護、分析性能統計信息的功能。這些信息包括CPU的使用情況。在本文中,我們將主要討論 Oracle AWR DB CPU 相關的內容。
DS CPU(Database Server CPU,數據庫服務器 CPU)是 Oracle AWR 中一個非常重要的指標。它代表數據庫服務器上可用的 CPU 資源數量。作為一個例子,當我們使用 TOP 命令查看一個 Linux 服務器的 CPU 使用情況時,可以看到以下信息:
top - 09:03:47 up 5 days, 10:27, 1 user, load average: 0.97, 0.77, 0.75 Tasks: 242 total, 2 running, 238 sleeping, 1 stopped, 1 zombie %Cpu(s): 1.1 us, 0.4 sy, 91.8 ni, 6.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 3964384 total, 235988 free, 845676 used, 2889720 buff/cache KiB Swap: 8191992 total, 8179848 free, 12144 used. 2641660 avail Mem
在上面的例子中,%Cpu(s) 行告訴我們,這個服務器的 CPU 使用情況如下:
- 1.1%占用率是由用戶進程造成的(即有人在服務器上執行任務)。
- 0.4%占用率是由系統進程造成的(即操作系統需要處理一些事務)。
- 91.8%占用率是由 "niced" 進程造成的(即 CPU 被分配到了后臺任務上)。
- 6.6% 的 CPU 被閑置了(即 CPU 可以用于其他進程運行)。
在 Oracle 數據庫中,DS CPU 不僅告訴我們數據庫服務器上可用的 CPU 數量,還告訴我們數據庫服務器上正在運行哪些進程在使用 CPU 資源。以下是一個示例:
BEGIN dbms_workload_repository.create_snapshot(); END;
在上面的示例中,我們使用了一個 dbms_workload_repository 存儲過程來創建一個 AWR 快照。AWR 快照將捕獲 Oracle 數據庫的性能統計信息,包括 DS CPU。因此,我們可以查詢 AWR 的視圖,以便了解有關 DS CPU 的更多信息。
SELECT snap_id,instance_number,round(sysstat_value/(select value from v$parameter where name='cpu_count')*100,2) "DB CPU Usage %" from dba_hist_sysstat where stat_name like '%CPU used by this session%';
上述代碼將查詢來自 dba_hist_sysstat 表的信息,包括A WR 快照 ID、實例編號以及 DS CPU 利用率。該代碼使用 round 函數將DS CPU 利用率顯示為百分比格式。
以上就是本文關于 Oracle AWR DB CPU 的介紹。DS CPU 對于 Oracle 數據庫的性能分析非常重要。可用的 CPU 數量和 CPU 利用率都是我們分析數據庫性能的重要指標。通過 AWR 快照,我們可以獲得詳細的數據庫性能分析信息。