达梦数据库查看正在执行的SQL
1. 使用 V$SESSIONS 视图
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SELECT SESS_ID, SQL_TEXT, CREATE_TIME, (UNIX_TIMESTAMP(CURRENT_TIMESTAMP) - UNIX_TIMESTAMP(CREATE_TIME)) AS elapsed_seconds, USER_NAME, STATE, RUN_STATUS, CLNT_IP FROM V$SESSIONS WHERE SQL_TEXT IS NOT NULL; |
2. 使用 SP_WHO 存储过程
达梦数据库还提供了 SP_WHO 存储过程,类似于SQL Server的 sp_who,可以查看当前会话信息:
1 |
CALL SP_WHO(); |
该存储过程会返回会话ID、用户、状态、执行的SQL片段等信息。
3. 监控长时间运行的SQL
达梦数据库还提供了 V$LONG_EXEC_SQLS 视图,可以查询执行时间较长的SQL语句:
1 |
SELECT * FROM V$LONG_EXEC_SQLS; |
该视图会显示最近1000条执行时间较长的SQL语句。