zoukankan      html  css  js  c++  java
  • Oracle v$session 中sql_id 为 null 说明

    先看SQL 查询结果:

    select sql_id,count(1) from v$active_session_history

    where sample_time>to_timestamp('2012-10-25 09:00:00','yyyy-mm-ddhh24:mi:ss')

    and sample_time<to_timestamp('2012-10-25 09:22:00','yyyy-mm-ddhh24:mi:ss')

    and event='latch: library cache'

    group by sql_id;


    SQL_ID          COUNT(1)

    ------------- ----------

                        1547   --注意这里有1547SQL_ID null session信息

    3dbdh26zbshcb         17

    4cqx327x2p1av         17

    9wbjxzbsvbn0g         17

    08a4nkjhhu0ff         17

    2g8g37mp0304q         17

    1sqtxcuf8tctq         17

    1kza9ykw04rhv         17

    4tbtmv2aq6gba         17

    a8q344u5s79n6         17

    fqdndxrnd0fjm         17

    2asgk01xtb6p0          9

    4gd6b1r53yt88         17

    3jnz9j02us7px         17

    5p9r2w0f7rs03         17

    7qx7wfncsqar3         17

    59mm6v008wuac         17

    9pnxbcs78g9v6         17

    8rmkkwdygf2yn         17

    8f40rh0ykpkp6         17

    dhbbr2byp32sw         17

    220yg2acnxq94         17

    4hn96ptb7q6mh         17

    6gvch1xu9ca3g         17

    7cwugf152r2s3         17

    cqqtc133jjuuq         17

    26 rows selected.

    继续查:

    SQL> set lin 200

    SQL> col sid for a10

    SQL> col machine for a20

    SQL> col program for a30

    SQL> col event for a15

    SQL> col sql_id for a10

    SQL> col type for a15

    SQL> set pagesize 500

    SQL> col STATUS  for a10

    SQL> col PREV_SQL_ID for a15

    SQL>select sid,sql_id,SQL_hash_value,prev_hash_value,prev_sql_id,event from v$session;

     

          SID STATUS     PROGRAM                        TYPE         SQL_ID     PREV_SQL_ID     EVENT

    ---------- ---------- ------------------------------------------ ---------- -------------------------------------------------------

          277 ACTIVE     oracle@H64AORA1(J000)         USER                                    jobq slavewait

          281 INACTIVE   plsqldev.exe                   USER                    a2b6nvx99pgrn   SQL*Net message from client

          284 INACTIVE   JDBC ThinClient               USER                    520mkxqpf15q8   SQL*Net message from client

          293 INACTIVE   oracle@H64AORA1(TNS V1-V3)    USER                    a7s2g79u9fjpb   SQL*Net message from client

          297 INACTIVE   JDBC ThinClient               USER                    dkwkp258ky77j   SQL*Net message from client

          298 INACTIVE   JDBC ThinClient               USER                    520mkxqpf15q8   SQL*Net message from client

          299 INACTIVE   JDBC ThinClient               USER                                    SQL*Net messagefrom client

          302 INACTIVE   JDBC ThinClient               USER                    3rq4s8tpx168s   SQL*Net message from client

          308 INACTIVE   sqlplus@H64AORA1(TNS V1-V3)   USER                    dyk4dprp70d74   SQL*Net message from client

          312 INACTIVE   JDBC ThinClient               USER                                    SQL*Netmessage from client

          313 ACTIVE     oracle@H64AORA1(q001)         BACKGROUND                              Streams AQ: qmnslave idle wait

          317 ACTIVE     oracle@H64AORA1 (QMNC)         BACKGROUND                              Streams AQ: qmncoordinator idle wait

          322 ACTIVE     oracle@H64AORA1(MMNL)         BACKGROUND                              rdbms ipc message

          324 ACTIVE     oracle@H64AORA1(CJQ0)         BACKGROUND                              rdbms ipc message

          325 ACTIVE     oracle@H64AORA1(RECO)         BACKGROUND                              rdbms ipc message

          326 ACTIVE     oracle@H64AORA1(SMON)         BACKGROUND                              smon timer

          327 ACTIVE     oracle@H64AORA1(CKPT)         BACKGROUND                              rdbms ipc message

          328 ACTIVE     oracle@H64AORA1(LGWR)         BACKGROUND                              rdbms ipc message

          329 ACTIVE     oracle@H64AORA1(DBW1)         BACKGROUND                              rdbms ipc message

          330 ACTIVE     oracle@H64AORA1(DBW0)         BACKGROUND                              rdbms ipc message

          331 ACTIVE     oracle@H64AORA1(MMAN)         BACKGROUND                              rdbms ipc message

          332 ACTIVE     oracle@H64AORA1(PSP0)         BACKGROUND                              rdbms ipc message

          333 ACTIVE     oracle@H64AORA1(PMON)         BACKGROUND                              pmon timer

          647 INACTIVE   JDBC ThinClient               USER                    520mkxqpf15q8   SQL*Net message from client

          650 INACTIVE   JDBC ThinClient               USER                    520mkxqpf15q8   SQL*Net message from client

          653 INACTIVE   JDBC ThinClient               USER                    520mkxqpf15q8   SQL*Net message from client

          656 INACTIVE   JDBC ThinClient               USER                    5zr4cbj9m140b   SQL*Net message from client

          657 INACTIVE   JDBC ThinClient               USER                    520mkxqpf15q8   SQL*Net message from client

          664 INACTIVE   JDBC ThinClient               USER                    520mkxqpf15q8   SQL*Net message from client

    29 rows selected.

    真相浮出水面:根据查询结果:sql_id为null 的session 有2种,一种是后台进程,还有就是inactive的session。


    对于SQL_ID 为null 的session,我们可以查看v$session中的 prev_sql_id 找到之前v$session 的SQL语句,当然这里也可能为空。

    如:

    $ ora sqltext a2b6nvx99pgrn

    Session altered.

    SQL_TEXT

    --------------------------------------------------------------------------------

    select null from dba_synonyms where 1=0

    $ ora sqltext  520mkxqpf15q8

    Session altered.

    SQL_TEXT

    --------------------------------------------------------------------------------

    select 1 from dual

    ---------------------------------------------------------------------------------------

    版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

    Skype:    tianlesoftware

    QQ:       tianlesoftware@gmail.com

    Email:    tianlesoftware@gmail.com

    Blog:     http://blog.csdn.net/tianlesoftware

    Weibo:    http://weibo.com/tianlesoftware

    Twitter:  http://twitter.com/tianlesoftware

    Facebook: http://www.facebook.com/tianlesoftware

    Linkedin: http://cn.linkedin.com/in/tianlesoftware

  • 相关阅读:
    无法删除文件提示找不到指定文件导致文件无法删除的解决方法
    c++多线程编程(三)
    c++多线程编程(二)
    c++多线程编程(一)
    面试中的C++常见问题
    展示组件(Presentational component)和容器组件(Container component)之间有何不同
    如果你创建了类似于下面的 Twitter 元素,那么它相关的类定义是啥样子的?
    React 中 refs 的作用是什么?
    typescript 类(类的定义、继承、修饰符、抽象类)
    typescript 接口 interface
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3609176.html
Copyright © 2011-2022 走看看