检查数据库内硬解析的sql语句

--参考信息:故障排除:Shared Pool优化和Library Cache Latch冲突优化 (文档 ID 1523934.1)

--注意:如果系统中有library cache latch争用的问题,下面的sql语句会导致争用加剧。
SET pages 10000
SET linesize 250
column FORCE_MATCHING_SIGNATURE format 99999999999999999999999
WITH c AS
(SELECT FORCE_MATCHING_SIGNATURE, COUNT(*) cnt
FROM gv$sqlarea
WHERE FORCE_MATCHING_SIGNATURE != 0
GROUP BY FORCE_MATCHING_SIGNATURE
HAVING COUNT(*) > 10),
sq AS
(SELECT PARSING_SCHEMA_NAME,
sql_text,
FORCE_MATCHING_SIGNATURE,
row_number() over(partition BY FORCE_MATCHING_SIGNATURE ORDER BY sql_id DESC) p
FROM gv$sqlarea s
WHERE FORCE_MATCHING_SIGNATURE IN
(SELECT FORCE_MATCHING_SIGNATURE FROM c))
SELECT sq.PARSING_SCHEMA_NAME,
sq.sql_text,
sq.FORCE_MATCHING_SIGNATURE,
c.cnt "unshared count"
FROM c, sq
WHERE sq.FORCE_MATCHING_SIGNATURE = c.FORCE_MATCHING_SIGNATURE
AND sq.p = 1
ORDER BY c.cnt DESC

原文地址:https://www.cnblogs.com/erwadba/p/8041381.html