<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    V$PROCESS 

      本視圖包含當(dāng)前系統(tǒng)oracle運(yùn)行的所有進(jìn)程信息。常被用于將oracle或服務(wù)進(jìn)程的操作系統(tǒng)進(jìn)程ID與數(shù)據(jù)庫session之間建立聯(lián)系。在某些情況下非常有用:

    1.         如果數(shù)據(jù)庫瓶頸是系統(tǒng)資源(如:cpu,內(nèi)存),并且占用資源最多的用戶總是停留在某幾個(gè)服務(wù)進(jìn)程,那么進(jìn)行如下諸項(xiàng):

    l         找出資源進(jìn)程

    l         找出它們的session,你必須將進(jìn)程與會(huì)話聯(lián)系起來。

    l         找出為什么session占用了如此多的資源

    2.         SQL跟蹤文件名是基于服務(wù)進(jìn)程的操作系統(tǒng)進(jìn)程ID。要找出session的跟蹤文件,你必須將session與服務(wù)進(jìn)程聯(lián)系起來。

    3.         某些事件,如rdbms ipc reply,鑒別session進(jìn)程的Oracle進(jìn)程ID在等什么。要發(fā)現(xiàn)這些進(jìn)程在做什么,你必須找出它們的session。

    4.         你所看到的服務(wù)器上的后臺(tái)進(jìn)程(DBWR,LGWR,PMON)都是服務(wù)進(jìn)程。要想知道他們?cè)谧鍪裁?,你必須找到他們?/span>session。

    V$PROCESS中的常用列

    l         ADDR:進(jìn)程對(duì)象地址

    l         PIDoracle進(jìn)程ID

    l         SPID:操作系統(tǒng)進(jìn)程ID

    V$PROCESS中的連接列

    Column                       View                            Joined Column(s)

    ADDR                          V$SESSION                 PADDR

    示例:

    1.         查找指定系統(tǒng)用戶在oracle中的session信息及進(jìn)程id,假設(shè)操作系統(tǒng)用戶為:junsansi

    select s.sid,s.SERIAL#, s.username,p.spid

     from v$session s, v$process p

     where s.osuser = 'junsansi'

       and s.PADDR = p.ADDR

    2.         查看鎖和等待

    SELECT/*+ rule */

     lpad(' ', decode(l.xidusn, 0, 3, 0)) || l.oracle_username User_name,

     o.owner,o.object_name,o.object_type,s.sid,s.serial#,p.spid

     FROM v$locked_object l, dba_objects o, v$session s, v$process p

     WHERE l.object_id = o.object_id

       AND l.session_id = s.sid and s.paddr = p.addr

     ORDERBY o.object_id, xidusn DESC

    3.          

    附注:

      在linux環(huán)境可以通過ps查看進(jìn)程信息包括pid,windows中任務(wù)管理器的PIDv$processpid不能一一對(duì)應(yīng),這塊在oracleDocument中也沒有找到介紹,后來google了一下,有資料介紹說是由于windows是多線程服務(wù)器,每個(gè)進(jìn)程包含一系列線程。這點(diǎn)于unix等不同,Unix每個(gè)Oralce進(jìn)程獨(dú)立存在,在Nt上所有線程由Oralce進(jìn)程衍生。

      要在windows中顯示oracle相關(guān)進(jìn)程pid,我們可以通過一個(gè)簡(jiǎn)單的sql語句來實(shí)現(xiàn)。

    SELECT s.SID, p.pid, p.spid signaled, s.osuser, s.program

     FROM v$process p, v$session s

     WHERE p.addr = s.paddr;

    SID

    PID

    SIGNALED

    OSUSER

    PROGRAM

    1

    2

    2452

    SYSTEM

    ORACLE.EXE

    2

    3

    2460

    SYSTEM

    ORACLE.EXE

    3

    4

    2472

    SYSTEM

    ORACLE.EXE

    4

    5

    2492

    SYSTEM

    ORACLE.EXE

    5

    6

    2496

    SYSTEM

    ORACLE.EXE

    6

    7

    2508

    SYSTEM

    ORACLE.EXE

    7

    8

    2520

    SYSTEM

    ORACLE.EXE

    8

    9

    2524

    SYSTEM

    ORACLE.EXE

    10

    12

    1316

    JSS"junsansi

    PlSqlDev.exe

    9

    13

    3420

    JSS"junsansi

    PlSqlDev.exe

    13

    14

    660

    JSS"junsansi

    PlSqlDev.exe

    還可以通過和 v$bgprocess 連接查詢到后臺(tái)進(jìn)程的名字:

    SELECT s.SID SID, p.spid threadid, p.program processname, bg.NAMENAME

     FROM v$process p, v$session s, v$bgprocess bg

     WHERE p.addr = s.paddr

       AND p.addr = bg.paddr

       AND bg.paddr <> '00';

    SID

    THREADID

    PROCESSNAME

    NAME

    1

    2452

    ORACLE.EXE

    PMON

    2

    2460

    ORACLE.EXE

    DBW0

    3

    2472

    ORACLE.EXE

    LGWR

    4

    2492

    ORACLE.EXE

    CKPT

    5

    2496

    ORACLE.EXE

    SMON

    6

    2508

    ORACLE.EXE

    RECO

    7

    2520

    ORACLE.EXE

    CJQ0

    8

    2524

    ORACLE.EXE

    QMN0

    Eygle大師寫了一段sql腳本getsql.sql,用來獲取指定pid正在執(zhí)行的sql語句,在此也附注上來。

    REM getsql.sql

    REM author eygle

    REM windows,已知進(jìn)程ID,得到當(dāng)前正在執(zhí)行的語句

    REM windows,進(jìn)程ID16進(jìn)制,需要轉(zhuǎn)換,UNIX直接為10進(jìn)制

    SELECT   /*+ ORDERED */

             sql_text

        FROM v$sqltext a

       WHERE (a.hash_value, a.address) IN (

                SELECT DECODE (sql_hash_value,

                               0, prev_hash_value,

                               sql_hash_value

                              ),

                       DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)

                  FROM v$session b

                 WHERE b.paddr = (SELECT addr

                                    FROM v$process c

                                   WHERE c.spid = TO_NUMBER ('&pid', 'xxxx')))

    ORDER BY piece ASC

    /

    主站蜘蛛池模板: 亚洲人成人网站在线观看| 亚洲精品无码成人| 亚洲人午夜射精精品日韩| 国产免费人成视频在线观看| 18禁免费无码无遮挡不卡网站| 日本免费久久久久久久网站| www.xxxx.com日本免费| 日韩一区二区三区免费播放| 韩国亚洲伊人久久综合影院| 亚洲AV日韩AV永久无码色欲 | 亚洲AV无码国产丝袜在线观看 | 亚洲激情电影在线| 亚洲精品欧洲精品| 麻豆69堂免费视频| aaa毛片视频免费观看| 最新国产乱人伦偷精品免费网站| 男女拍拍拍免费视频网站| 成年免费大片黄在线观看岛国| 三年片在线观看免费大全| 亚洲中文字幕无码久久综合网| 国内精品久久久久久久亚洲| 国产91在线|亚洲| 亚洲GV天堂GV无码男同| 成年大片免费视频播放一级| 免费观看黄色的网站| 免费高清在线影片一区| 国产成人aaa在线视频免费观看| 国产av无码专区亚洲国产精品| 亚洲an日韩专区在线| 免费国产黄网站在线看| 国产无遮挡无码视频免费软件| 黄色网址免费大全| 亚洲日韩精品一区二区三区无码 | 国产美女无遮挡免费视频| 亚洲视频在线一区二区三区| 亚洲www在线观看| 欧洲精品99毛片免费高清观看| 亚洲一级免费视频| 国产成人亚洲综合无码精品| 亚洲色欲色欲www| 99热在线免费观看|