DBAtlas · 데이터베이스 운영 아틀라스

실행 중/최근 SQL 실시간 모니터링

Oracle

SET LONG 1000000 LONGCHUNKSIZE 1000000 LINESIZE 250 PAGESIZE 0
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(sql_id=>'&sql_id', type=>'TEXT') AS report FROM dual;
-- or: SELECT sql_id, status, elapsed_time FROM v$sql_monitor WHERE status='EXECUTING';

Real-Time SQL Monitoring은 장시간/병렬 쿼리를 실시간으로 보여 준다(Tuning Pack).

PostgreSQL

SELECT pid, now()-query_start AS dur, state, wait_event, query
FROM pg_stat_activity WHERE state='active' ORDER BY query_start;

auto_explain을 사용하면 느린 쿼리의 실행 계획을 자동으로 로그에 기록할 수 있다.

MySQL

SELECT thread_id, event_name, timer_wait/1e9 AS ms, sql_text
FROM performance_schema.events_statements_current;

events_statements_current는 현재 실행 중인 문을 보여 준다.

SQL Server

SELECT r.session_id, r.status, r.wait_type, r.percent_complete, t.text
FROM sys.dm_exec_requests r JOIN sys.dm_exec_sessions s ON s.session_id = r.session_id CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE s.is_user_process = 1;

SSMS의 'Live Query Statistics'는 실행 계획 진행 상황을 실시간으로 보여 준다.

MongoDB

db.currentOp({ active: true, secs_running: { $gt: 1 } })

장시간 실행 작업을 실시간으로 보여 주며, killOp로 종료할 수 있다.

Redis

MONITOR

모든 명령을 실시간으로 스트리밍한다. 운영 환경에서 성능에 영향을 주므로 짧게만 사용한다. 대신 SLOWLOG를 권장한다.

Elasticsearch

GET _tasks?detailed=true&group_by=parents

실행 중인 작업을 실시간으로 보여 준다. 장시간 작업은 POST _tasks/<id>/_cancel로 취소한다.

DBAtlas에서 열기 →