身為資料庫管理員或開發人員,掌握 Oracle 資料庫的核心系統查詢指令至關重要。本文整理了實務上最常用的 SQL 查詢,涵蓋連線數監控、參數設定、Session 管理等核心場景,助您快速診斷系統狀態、優化效能瓶頸,打造穩健可靠的資料庫環境。
1. 當前資料庫連線數(Processes)
SELECT COUNT(*) FROM v$process;
此查詢返回當前資料庫實例的作業程序總數,包含使用者程序與背景程序。
2. 資料庫允許的最大連線數
SELECT value FROM v$parameter WHERE name = 'processes';
查看 processes 參數設定值,此值決定資料庫可同時支援的最大作業程序數。
3. 修改最大連線數
ALTER SYSTEM SET processes = 300 SCOPE = spfile;
調整最大連線數需修改 SPFILE 並重啟資料庫才能生效。建議依據實際負載與硬體資源評估設定。
4. 重啟資料庫使參數生效
SHUTDOWN IMMEDIATE;
STARTUP;
採用 IMMEDIATE 模式關閉可確保交易正常提交或回滾,避免資料不一致。
5. 查看當前活躍使用者與 SQL 執行狀況
SELECT osuser, a.username,
cpu_time/executions/1000000 || 's' AS cpu_per_exec,
b.sql_text, machine
FROM v$session a, v$sqlarea b
WHERE a.sql_address = b.address
ORDER BY cpu_time/executions DESC;
此查詢結合 v$session 與 v$sqlarea,可快速定位高 CPU 消耗的 SQL 語句與對應使用者,是效能調校的首要切入點。
6. 當前 Session 總連線數
SELECT COUNT(*) FROM v$session;
7. 並發活躍連線數
SELECT COUNT(*) FROM v$session WHERE status = 'ACTIVE';
僅統計狀態為 ACTIVE 的 Session,反映真實併發負載。
8. 透過 Show Parameter 快速檢視核心參數
SHOW PARAMETER processes;
SQL*Plus 環境下的便捷指令,可一次列出參數當前值、預設值與描述。
v$session_wait 分析等待事件,精準定位效能瓶頸