gdufo

           

          學習動態性能表 第二篇--v$sesstat 2007.5.25

           

          按照OracleOnlineBook中的描述,v$sesstat存儲sessionloginlogout的詳細資源使用統計。

           

            類似于v$sysstat,該視圖存儲下列類別的統計:

           

          l         事件發生次數的統計,如用戶提交數。

          l         數據產生,存取或者操作的total(如:redo size)

          l         執行操作所花費的時間累積,例如session CPU占用(如果TIMED_STATISTICS值為true)

          注意:

          如果初始參數STATISTICS_LEVEL被設置為TYPICALALL,時間統計被數據庫自動收集如果STATISTICS_LEVEL被設置為BASIC,你必須設置TIMED_STATISTICS值為TRUE以打開收集功能。

           

          如果你已設置了DB_CACHE_ADVICE,TIMED_STATISTICSTIMED_OS_STATISTICS,或在初始參數文件或使用ALTER_SYSTEMALTER SESSION,那么你所設定的值的值將覆蓋STATISTICS_LEVEL的值。

           

          v$sysstatv$sesstat差別如下:

          n         v$sesstat只保存session數據,而v$sysstat則保存所有sessions的累積值。

          n         v$sesstat只是暫存數據,session退出后數據即清空。v$sysstat則是累積的,只有當實例被shutdown才會清空。

          n         v$sesstat不包括統計項名稱,如果要獲得統計項名稱則必須與v$sysstatv$statname連接查詢獲得。

           

          v$sesstat可被用于找出如下類型session

          n         高資源占用

          n         高平均資源占用比(登陸后資源使用率)

          n         默認資源占用比(兩快照之間)

           

          V$SESSTAT中使用統計

            多數v$sesstat中的統計參考是v$sysstat描述的子集,包括session logical reads, CPU used by this session, db block changes, redo size, physical writes, parse count (hard), parse count (total), sorts (memory), and sorts (disk).

           

          V$SESSTAT常用列說明

          n         SIDsession唯一ID

          n         STATISTIC#:資源唯一ID

          n         VALUE:資源使用

           

           

          示例1:下列找出當前session中最高的logicalPhysical I/O比率.

           

            下列SQL語句顯示了所有連接到數據庫的session邏輯、物理讀比率(每秒)logicalphysical I/O比率是通過自登陸后的時間消耗計算得出。對于sessions連接到數據庫這種長周期操作而言也許不夠精確,不過做個示例卻足夠了。

           

          先獲得session邏輯讀和物理讀統計項的STATISTIC#值:

          SELECT name, statistic#

            FROM V$STATNAME

            WHERE name IN ('session logical reads','physical reads') ;

          NAME                           STATISTIC#

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

          session logical reads                   9

          physical reads                         40

           

          通過上面獲得的STATISTIC#值執行下列語句:

           

          SELECT ses.sid

               , DECODE(ses.action,NULL,'online','batch')          "User"

               , MAX(DECODE(sta.statistic#,9,sta.value,0))

                 /greatest(3600*24*(sysdate-ses.logon_time),1)     "Log IO/s"

               , MAX(DECODE(sta.statistic#,40,sta.value,0))

                 /greatest(3600*24*(sysdate-ses.logon_time),1)     "Phy IO/s"

               , 60*24*(sysdate-ses.logon_time)                    "Minutes"

           FROM V$SESSION ses

              , V$SESSTAT sta

          WHERE ses.status     = 'ACTIVE'

            AND sta.sid        = ses.sid

            AND sta.statistic# IN (9,40)

          GROUP BY ses.sid, ses.action, ses.logon_time

          ORDER BY

                  SUM( DECODE(sta.statistic#,40,100*sta.value,sta.value) )

                / greatest(3600*24*(sysdate-ses.logon_time),1)  DESC;

           

            SID User   Log IO/s Phy IO/s Minutes

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

           1951 batch       291    257.3       1

            470 online    6,161     62.9       0

            730 batch     7,568     43.2     197

           2153 online    1,482     98.9      10

           2386 batch     7,620     35.6      35

           1815 batch     7,503     35.5      26

           1965 online    4,879     42.9      19

           1668 online    4,318     44.5       1

           1142 online      955     69.2      35

           1855 batch       573     70.5       8

           1971 online    1,138     56.6       1

           1323 online    3,263     32.4       5

           1479 batch     2,857     35.1       3

            421 online    1,322     46.8      15

           2405 online      258     50.4       8

           

           

          示例2:又例如通過v$sesstatv$statname連接查詢某個SID各項信息。

          select a.*,b.name

            from v$sesstat a,v$statname b

            where a.sid=10 and a.statistic#=b.statistic#;

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

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 上饶市| 安图县| 宁德市| 建阳市| 洛川县| 长子县| 霍山县| 哈尔滨市| 昌宁县| 左贡县| 若尔盖县| 望城县| 二连浩特市| 嘉善县| 平湖市| 柏乡县| 惠东县| 商南县| 新丰县| 岳普湖县| 无棣县| 南华县| 松江区| 京山县| 中西区| 潜山县| 安阳市| 梓潼县| 渭南市| 昌都县| 临夏县| 西和县| 乌兰察布市| 醴陵市| 三台县| 闽清县| 娄烦县| 武威市| 清镇市| 偃师市| 黄大仙区|