zoukankan      html  css  js  c++  java
  • ora-1000问题排查

    ----ora-1000问题排查
    open_cursor.底层视图是从x$kgllk中来的。并且通过kglhdnsp = 0过滤了sp打开的cursor。会加1号null的易碎解析锁。可能的原因:1.执行的sql语句确实比较多(可能性比较小)。2.sp里面的循环硬解析造成的

    1.查找哪些session当前打开的游标数。按游标数desc排序
    select a.INST_ID,a.value, s.username, s.sid, s.serial#,s.MACHINE,s.MODULE
    from gv$sesstat a, v$statname b, gv$session s
    where a.statistic# = b.statistic#
    and s.sid = a.sid
    and a.INST_ID=s.INST_ID
    and b.name in ('opened cursors current')
    order by value desc

    2.查找每个sessioin打开的游标数
    SELECT se.sid ,op.sql_text, op.user_name,se.MODULE,count(*) as "OPEN CURSORS"
    FROM gv$open_cursor op,gv$session se
    where op.INST_ID=se.INST_ID
    and op.SADDR=se.SADDR
    and op.SID=se.SID
    and op.USER_NAME=se.USERNAME
    /*and sid=*/
    GROUP BY se.sid ,op.sql_text, op.user_name,se.MODULE order by 5 desc ;

    3.查看系统内的硬解析。
    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

  • 相关阅读:
    Vue项目中跨域问题解决
    子网掩码
    C++的const类成员函数
    在python3中使用urllib.request编写简单的网络爬虫
    Linux 重定向输出到多个文件中
    背包问题
    hdu-1272 小希的迷宫
    SQLAlchemy 几种查询方式总结
    pycharm快捷键、常用设置、配置管理
    python3判断字典、列表、元组为空以及字典是否存在某个key的方法
  • 原文地址:https://www.cnblogs.com/erwadba/p/9523154.html
Copyright © 2011-2022 走看看