整体业务 SQL 速度慢,主机 CPU 使用率高
整体业务 SQL 速度慢,主机 CPU 使用率高
收藏
复制链接
微信扫码分享
在小程序上查看
分享
2条回答
默认
最新
- 确认数据库状态:
Copy##确认数据库进程正常。
ps –ef|grep dmserver
通过以下语句查询数据库状态:
Copyselect instance_name,status$ from v$instance;
- 检查数据库当前会话,是否有运行中的异常 SQL。如果有大量执行效率低的 SQL,确认是否可以限流、可以强制终止。如果可以强制终止,执行下一步。
(1)查询所有会话
Copyselect
sysdate,
SF_GET_SESSION_SQL(SESS_ID), --获取完整 sql
sess_id,
sess_seq,
sql_text,
state,
seq_no,
user_name,
trx_id,
create_time,
clnt_ip
from
v$sessions
where
state='ACTIVE';
(2)查询执行效率慢 sql
CopySELECT
*
FROM
(
SELECT
sess_id,
sql_text,
datediff (ss, last_recv_time, SYSDATE) Y_EXETIME,
SF_GET_SESSION_SQL (SESS_ID) fullsql,
clnt_ip
FROM
V$SESSIONS
WHERE
STATE = 'ACTIVE'
)
WHERE
Y_EXETIME >= 2; --执行时间超 2s,可以自定义该时间
- 终止异常会话:
在数据库里面执行 SQL 语句:
Copysp_close_session(sess_id);
- 分析 SQL 执行计划,看是否有优化空间,进行 SQL 优化。
- 观察数据库活动会话是否正常。
评论
有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

