1.生成AWR数据库运行报告。
1、启用AWR包:
call SP_INIT_AWR_SYS(1);
2、查询AWR快照:
SELECT * FROM SYS.WRM$_SNAPSHOT;
3、设置快照间隔,如果不设置快照间隔,手动执行快照后SYS.WRM$_SNAPSHOT视图中没有记录:
CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(50);
--该间隔为50分钟生成一次
4、在两个时间点分别手动创建快照,或者等待系统自动生成:
10:00时创建第一快照:
call DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
30分钟后再创建一个,10:30,
call DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
5、查询AWR快照:
SELECT * FROM SYS.WRM$_SNAPSHOT;
6、创建AWR报告,SYS.AWR_REPORT_HTML(快照ID1,快照ID2,'AWR报告存放路径','AWR报告名称.HTLM');:
SYS.AWR_REPORT_HTML(1,2,'C:\','AWR1.HTML');
7、关闭AWR包:
call SP_INIT_AWR_SYS(0);
--由于AWR报告主要用于分析一定周期内的数据库运行情况,在使用完后建议选择关闭;
2.查看当前数据库环境下慢于5秒的SQL;
select * from (
SELECT sess_id,sql_text,datediff(ss,last_send_time,sysdate) ss,
SF_GET_SESSION_SQL(SESS_ID) fullsql
FROM V$SESSIONS WHERE STATE='ACTIVE' and sess_id <> sessid())
where ss>=1;
--ss>=1表示1秒及以上的慢SQL,可以替换成其他时间;
3.当出现死锁的情况,可以通过执行一下SQL;
select O.OBJECT_NAME ,S.SESS_ID,S.SQL_TEXT,L.ADDR,L.TRX_ID,L.LTYPE,L.LMODE,L.BLOCKED,L.TABLE_ID,L.ROW_IDX
FROM V$LOCK L,DBA_OBJECTS O,V$SESSIONS S
WHERE L.TABLE_ID=O.OBJECT_ID AND L.TRX_ID=S.TRX_ID AND L.BLOCKED=1;
--清除阻塞SQL;
SP_CLOSE_SESSION(上述查到的SESS_ID);
最后修改时间:2021-09-06 14:45:18
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。