Giám sát các sự kiện chờ (wait events), các phiên (sessions), và các dịch vụ (services) là một phần quan trọng trong việc quản lý và tối ưu hóa hiệu suất của Oracle Database. Dưới đây là các bước và công cụ bạn có thể sử dụng để giám sát những yếu tố này.
Monitoring Wait Events, Sessions, and Services Oracle Database | Giám sát Sessions Oracle Database
1. Giám sát Wait Events
Wait events cung cấp thông tin về các sự kiện mà Oracle Database đang chờ đợi, giúp bạn xác định các điểm nghẽn hiệu suất.
Sử dụng V$SESSION_WAIT
Khung nhìn động V$SESSION_WAIT cung cấp thông tin về các sự kiện chờ hiện tại của các phiên.
SELECT sid, event, p1, p2, p3, wait_time, seconds_in_wait FROM V$SESSION_WAIT WHERE wait_time = 0;
Sử dụng V$SYSTEM_EVENT
Khung nhìn động V$SYSTEM_EVENT cung cấp thông tin tổng hợp về tất cả các sự kiện chờ kể từ khi cơ sở dữ liệu được khởi động.
SELECT event, total_waits, total_timeouts, time_waited, average_wait FROM V$SYSTEM_EVENT ORDER BY time_waited DESC;
Sử dụng V$SESSION
Khung nhìn V$SESSION cung cấp thông tin chi tiết về các phiên, bao gồm các sự kiện chờ hiện tại và các sự kiện chờ gần đây.
SELECT sid, serial#, event, wait_class, state FROM V$SESSION WHERE state IN ('WAITING', 'WAITED SHORT TIME');
2. Giám sát Sessions
Giám sát các phiên làm việc giúp bạn hiểu rõ hoạt động của các phiên người dùng và phát hiện các vấn đề hiệu suất.
Sử dụng V$SESSION
Khung nhìn V$SESSION cung cấp thông tin về tất cả các phiên đang hoạt động.
SELECT sid, serial#, username, status, osuser, machine, program FROM V$SESSION ORDER BY status;
Sử dụng V$SESSION_LONGOPS
Khung nhìn V$SESSION_LONGOPS cung cấp thông tin về các hoạt động lâu dài trong các phiên làm việc.
SELECT sid, serial#, opname, target, start_time, elapsed_seconds, time_remaining FROM V$SESSION_LONGOPS WHERE elapsed_seconds > 60 ORDER BY elapsed_seconds DESC;
Sử dụng V$ACTIVE_SESSION_HISTORY
Khung nhìn V$ACTIVE_SESSION_HISTORY lưu trữ thông tin về các phiên hoạt động trong một khoảng thời gian gần đây.
SELECT sample_time, session_id, session_state, event, wait_time FROM V$ACTIVE_SESSION_HISTORY ORDER BY sample_time DESC;
3. Giám sát Services
Dịch vụ trong Oracle Database cho phép bạn quản lý và phân phối tải công việc theo các ứng dụng hoặc các yêu cầu nghiệp vụ.
Sử dụng V$ACTIVE_SERVICES
Khung nhìn V$ACTIVE_SERVICES cung cấp thông tin về các dịch vụ đang hoạt động.
SELECT name, service_id, network_name, creation_date FROM V$ACTIVE_SERVICES;
Sử dụng V$SERVICE_STATS
Khung nhìn V$SERVICE_STATS cung cấp số liệu thống kê về hiệu suất của các dịch vụ.
SELECT service_name, stat_name, value FROM V$SERVICE_STATS ORDER BY service_name;
Sử dụng DBMS_SERVICE: Gói DBMS_SERVICE cho phép bạn quản lý các dịch vụ Oracle Database.
-- Tạo dịch vụ mới BEGIN DBMS_SERVICE.CREATE_SERVICE( service_name => 'new_service', network_name => 'new_service' ); END; / -- Bắt đầu dịch vụ BEGIN DBMS_SERVICE.START_SERVICE( service_name => 'new_service' ); END; / -- Dừng dịch vụ BEGIN DBMS_SERVICE.STOP_SERVICE( service_name => 'new_service' ); END; /
4. Sử dụng Oracle Enterprise Manager (OEM)
Oracle Enterprise Manager cung cấp giao diện đồ họa mạnh mẽ để giám sát và quản lý Oracle Database. OEM cung cấp thông tin chi tiết về các sự kiện chờ, phiên làm việc, và dịch vụ, cũng như các công cụ để tối ưu hóa hiệu suất.