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

          轉載:學習Oracle動態性能表-(4)-V$SESSTAT

          Posted on 2008-06-11 22:33 詩特林 閱讀(1495) 評論(0)  編輯  收藏 所屬分類: Oracle
           

          轉載:學習Oracle動態性能表-(4)-V$SESSTAT

            按照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#值:

          SELECTname, statistic#

           FROM V$STATNAME

           WHEREnameIN ('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=10and a.statistic#=b.statistic#;

          (2)-v$mystat 

            本視圖是v$sesstat的一個子集,返回當前session的統計項。當通過觸發器審計session資源使用,可以使用v$mystat來捕獲資源使用,這將比直接掃描v$sesstat的列要節省資源的多。

          主站蜘蛛池模板: 三都| 玉溪市| 多伦县| 施甸县| 玉环县| 阿坝| 黎川县| 旬邑县| 阿拉善右旗| 阿瓦提县| 龙口市| 随州市| 长岛县| 桐庐县| 扬州市| 定远县| 景宁| 若尔盖县| 大宁县| 丹巴县| 靖江市| 静宁县| 原阳县| 襄垣县| 陆丰市| 启东市| 民勤县| 乌兰察布市| 玉田县| 资兴市| 盐山县| 将乐县| 西峡县| 合水县| 广灵县| 深州市| 肃北| 大宁县| 车险| 关岭| 汽车|