posts - 310, comments - 6939, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
           

          V$SESSION_LONGOPS 

          本視圖顯示運行超過6秒的操作的狀態(tài)。包括備份,恢復,統(tǒng)計信息收集,查詢等等。

          要監(jiān)控查詢執(zhí)行進展狀況,你必須使用cost-based優(yōu)化方式,并且:

          l         設(shè)置TIMED_STATISTICSSQL_TRACE參數(shù)值為true。

          l         通過ANALYZEDBMS_STATS數(shù)據(jù)包收集對象統(tǒng)計信息。

          你可以通過DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS過程添加application-specific長運行操作信息到本視圖。關(guān)于DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS的更多信息可以瀏覽:Oracle Supplied PL/SQL Packages and Types Reference

          V$SESSION_LONGOPS列說明

           

          l         SIDSession標識

          l         SERIAL#Session串號

          l         OPNAME:操作簡要說明

          l         TARGET:操作運行所在的對象

          l         TARGET_DESC:目標對象說明

          l         SOFAR:至今為止完成的工作量

          l         TOTALWORK:總工作量

          l         UNITS:工作量單位

          l         START_TIME:操作開始時間

          l         LAST_UPDATE_TIME:統(tǒng)計項最后更新時間

          l         TIME_REMAINING:預計完成操作的剩余時間()

          l         ELAPSED_SECONDS:從操作開始總花費時間()

          l         CONTEXT:前后關(guān)系

          l         MESSAGE:統(tǒng)計項的完整描述

          l         USERNAME:執(zhí)行操作的用戶ID

          l         SQL_ADDRESS:用于連接查詢的列

          l         SQL_HASH_VALUE:用于連接查詢的列

          l         QCSID

          示例:

          找一較大表,確認該表查詢將超過6秒,哎呀讓它快咱沒把握,讓它慢這可是我的強項啊~~

          SQL> set timing on

          SQL> create table ttt as select level lv,rownum rn from dual connect by level<10000000;   --創(chuàng)建一個臨時表

          Table created

          Executed in 19.5 seconds

          SQL> commit;

          Commit complete

          Executed in 0 seconds

          SQL> select * from (select * from ttt order by lv desc) where rownum<2;    --執(zhí)行一個費時的查詢

           

                  LV         RN

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

             9999999    9999999

          Executed in 9.766 seconds   --哈哈,成功超過6

          SQL> select sid,opname,sofar,totalwork,units,sql_hash_value from v$session_longops;      ----看看v$session_longops中是不是已經(jīng)有記錄了

           

                 SID OPNAME                                                                SOFAR TOTALWORK UNITS                            SQL_HASH_VALUE

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

                  10 Table Scan                                                            47276      47276 Blocks                               2583310173

          Executed in 0.047 seconds

           

          SQL> select a.sql_text from v$sqlarea a,v$session_longops b where a.HASH_VALUE=b.SQL_HASH_VALUE;   --通過hash_value聯(lián)系查詢出剛執(zhí)行的查詢語句。

           

          SQL_TEXT

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

           select * from (select * from ttt order by lv desc) where rownum<2

          Executed in 0.063 seconds

          Ps:itpub論壇的fenng版版數(shù)年前有篇文章描述了v$sessin_longops的來源,有興趣的朋友可以研究研究:

          http://www.dbanotes.net/database/vsession_longops.html

          主站蜘蛛池模板: 贵港市| 庆元县| 安庆市| 山东| 宁安市| 榕江县| 报价| 上蔡县| 沙坪坝区| 杨浦区| 雷州市| 青川县| 城固县| 陇西县| 江油市| 封开县| 靖江市| 凉城县| 卓资县| 乌恰县| 栾川县| 彰武县| 顺平县| 白河县| 浙江省| 洛川县| 安溪县| 定安县| 社旗县| 特克斯县| 寻乌县| 古蔺县| 阿克陶县| 五大连池市| 抚宁县| 东乡县| 潜江市| 电白县| 应城市| 武城县| 广昌县|