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

  • 相关阅读:
    伪静态规则写法RewriteRule-htaccess详细语法使用
    事务的操作
    layer 模版使用
    追加下拉框的自动生成
    PHP自动生成前端的表单框架
    MySQL高效获取记录总数
    引用JS表单验证大全 以后方便查看用
    关于left join连接查询 两张表里有同名字段的问题
    详解clientHeight、offsetHeight、scrollHeight
    php防止SQL注入详解及防范
  • 原文地址:https://www.cnblogs.com/erwadba/p/9523154.html
Copyright © 2011-2022 走看看