1.查询慢 SQL 及阻塞
--检查当前数据库中包含的慢 SQL 及阻塞语句
SELECT
DS.SESS_ID "被阻塞的会话ID",
DS.SQL_TEXT "被阻塞的SQL",
DS.TRX_ID "被阻塞的事务ID",
(CASE L.LTYPE WHEN 'OBJECT' THEN '对象锁' WHEN 'TID' THEN '事务锁' END CASE ) "被阻塞的锁类型",
DS.CREATE_TIME "开始阻塞时间",
SS.SESS_ID "占用锁的会话ID",
SS.SQL_TEXT "占用锁的SQL",
SS.CLNT_IP "占用锁的IP",
L.TID "占用锁的事务ID"
FROM
V$LOCK L
LEFT JOIN V$SESSIONS DS
ON
DS.TRX_ID = L.TRX_ID
LEFT JOIN V$SESSIONS SS
ON
SS.TRX_ID = L.TID
WHERE
L.BLOCKED = 1
2. 查询死锁历史事务信息
select
dh.trx_id ,
sh.sess_id,
wm_concat(top_sql_text)
from
V$DEADLOCK_HISTORY dh,
V$SQL_HISTORY sh
where
dh.trx_id =sh.trx_id
and dh.sess_id=sh.sess_id
group by
dh.trx_id, sh.sess_id;
3. 查询有事务未提交的表
SELECT b.object_name, c.sess_id, a.*
FROM v$lock a, dba_objects b, v$sessions c
WHERE a.table_id = b.object_id AND ltype = 'OBJECT' AND a.trx_id = c.trx_id;
4. 查询已执行超过 2 秒的活动 SQL
select * from
(
SELECT
user_name ,
clnt_ip ,
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 user_name!='SYSDBA'
)
where ss>=2 order by 5 desc;
5. 查询实例中已执行未提交的 SQL
SELECT t1.sql_text, t1.state, t1.trx_id
FROM v$sessions t1, v$trx t2
WHERE t1.trx_id = t2.id AND t1.state = 'IDLE' AND t2.status = 'ACTIVE';
6. 查询占用内存最多的 sql
--查询执行在 1 秒以上的SQL语句使用的内存
SELECT "SESSID", MAX_MEM_USED||'KB',SQL_TXT FROM V$SQL_STAT order by MAX_MEM_USED DESC;
通过此 SQL 语句确定使用内存较大的 SQL,进行针对性的优化,如消除 HASH,SORT,DISTINCT 等操作。该查询只能查询当前活动 STMT 上的语句消耗情况,历史情况需要查询 V$SQL_STAT_HISTORY,详细内容请参考数据库安装 doc 目录下《系统管理员手册》。
7. 查询占用 io 较大的 sql
--查询物理读次数较大的 sql
select
s.sess_id ,
s.sql_text ,
s.user_name ,
s.state ,
st.PHY_READ_CNT,
st.iO_WAIT_TIME
from
v$sessions s, v$session_stat st
where
s.sess_id=st.sessid and s.state ='ACTIVE'
ORDER BY 5 DESC;
8. 查找性能相对较差的 sql。 即磁盘读取次数较多,按照硬解析读取次数倒叙排序。
select
SQL_TXT ,EXEC_TIME , PARSE_CNT ,
PARSE_TIME ,HARD_PARSE_CNT,HARD_PARSE_TIME
FROM
v$sql_stat
ORDER BY
HARD_PARSE_CNT DESC,
EXEC_TIME DESC;最后修改时间:2024-07-05 09:35:26
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




