gdufo

           

          學(xué)習(xí)動態(tài)性能表 第13篇--V$OPEN_CURSOR 2007.6.8

           

          本視圖列出session打開的所有cursors,很多時候都將被用到,比如:你可以通過它查看各個session打開的cursor數(shù)。

           

            當診斷系統(tǒng)資源占用時,它常被用于聯(lián)接v$sqlareav$sql查詢出特定SQL(高邏輯或物理I/O)。然后,下一步就是找出源頭。在應(yīng)用環(huán)境,基本都是同一類用戶登陸到數(shù)據(jù)庫(V$SQLAREA中擁有相同的PARSING_USER_ID),而通過這個就可以找出它們的不同。V$SQLAREA中的統(tǒng)計項在語句完全執(zhí)行后被更新(并且從V$SESSION.SQL_HASH_VALUE中消失)。因此,你不能直接找到session除非語句被再次執(zhí)行。不過如果sessioncursor仍然打開著,你可以通過v$open_cursor找出執(zhí)行這個語句的session

           

          V$OPEN_CURSOR中的連接列

           

          Column                              View                                                 Joined Column(s)

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

          HASH_VALUE, ADDRESS           V$SQLAREA, V$SQL, V$SQLTEXT             HASH_VALUE, ADDRESS

          SID                                                 V$SESSION                                                      SID

           

          示例:

          1.找出執(zhí)行某語句的session

          SELECT hash_value, buffer_gets, disk_reads

          FROM V$SQLAREA

          WHERE disk_reads > 1000000

          ORDER BY buffer_gets DESC;

           

          HASH_VALUE BUFFER_GETS DISK_READS

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

          1514306888   177649108    3897402

           478652562    63168944    2532721

           360282550    14158750    2482065

           

          3 rows selected.

          SQL> SELECT sid FROM V$SESSION WHERE sql_hash_value = 1514306888 ;

          no rows selected

          --直接通過hash_value查找v$session,沒有記錄

           

          SQL> SELECT sid FROM V$OPEN_CURSOR WHERE hash_Value = 1514306888 ;

           

            SID

          -----

           1125

            233

            935

           1693

            531

           

          5 rows selected.

          --通過hash_valuev$open_cursor中查找sid(只有在sessioncursor仍然打開的情況下才有可能找到)

           

          2.列出擁有超過400cursorsessionID

          SQL> SELECT sid, count(0) ct FROM v$open_cursor

          GROUP BY sid HAVING COUNT(0) > 400 ORDER BY ct desc;

           

          事實上,v$open_cursor是一個相當常用的視圖,特別是web開發(fā)應(yīng)用的時候。僅通過它一個視圖你就能分析出當前的連接情況,主要執(zhí)行語句等。

          posted on 2009-11-17 14:37 gdufo 閱讀(170) 評論(0)  編輯  收藏 所屬分類: Database (oracle, sqlser,MYSQL)

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新巴尔虎左旗| 长丰县| 漳州市| 鄢陵县| 闽侯县| 扶绥县| 乌兰察布市| 即墨市| 锦州市| 威宁| 黎平县| 三明市| 时尚| 梓潼县| 高碑店市| 延安市| 芜湖县| 阳泉市| 孟津县| 沁源县| 古田县| 宜良县| 昔阳县| 内黄县| 湛江市| 咸阳市| 连山| 阿合奇县| 海门市| 铜鼓县| 金阳县| 洱源县| 阿坝县| 思茅市| 鄯善县| 自治县| 泾阳县| 武夷山市| 临海市| 苏尼特右旗| 通山县|