久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

ORACLE session中SPID、PID、SID的區別是什么

151次閱讀
沒有評論

共計 3081 個字符,預計需要花費 8 分鐘才能閱讀完成。

本篇內容介紹了“ORACLE session 中 SPID、PID、SID 的區別是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

SPID 一一 system process id,
表示該 server process 在 OS 層面的 Porcess ID,即操作系統進程 ID

PID 一一 Oracle process id 
可以理解為 Oracle 自己用的,Oracle 進程 ID

SID 一一 SESSION 標識,常用于連接其它列

我們一般都用 V$process.spid 或 V$session.sid + V$session.serial# 來 kill session

v$process 視圖: 
     v$process 視圖包含當前系統 oracle 運行的所有進程信息。常被用于將 oracle 或服務進程的操作系統進程 ID 與數據庫 session 之間建立聯系。 
常用列: 
     ADDR:進程對象地址  
     PID:oracle 進程 ID 
     SPID:操作系統進程 ID 
     V$PROCESS 中的連接列  
     Column View Joined Column(s) 
     ADDR V$SESSION PADDR 

v$session 視圖  
     V$SESSION 是基礎信息視圖,用于找尋用戶 SID 或 SADDR。不過,它也有一些列會動態的變化,可用于檢查用戶。 
常用列: 
     SID:SESSION 標識,常用于連接其它列  
     SERIAL#:如果某個 SID 又被其它的 session 使用的話則此數值自增加 (當一個 SESSION 結束,另一個 SESSION 開始并使用了同一個 SID)。 
     AUDSID:審查 session ID 唯一性,確認它通常也用于當尋找并行查詢模式  
     USERNAME:當前 session 在 oracle 中的用戶名。 
     STATUS:這列用來判斷 session 狀態是: 
     Achtive:正執行 SQL 語句(waiting for/using a resource) 
     Inactive:等待操作(即等待需要執行的 SQL 語句) 
     Killed:被標注為刪除  
     paddr, process addr, 通過這個字段我們可以查看當前進程的相關信息, 系統進程 id, 操作系統用戶信息等等. 
     (sql_address,sql_hash_value) (prev_sql_addr,prev_hash_value) 根據這兩組字段, 我們可以查詢到當前 session 正在執行的 sql 語句的詳細  
信息. 

v$sqltext 視圖  
     v$sqltext 視圖包括 Shared pool 中 SQL 語句的完整文本,一條 SQL 語句可能分成多個塊被保存于多個記錄內。 
常用列: 
     HASH_VALUE:SQL 語句的 Hash 值  
     ADDRESS:sql 語句在 SGA 中的地址  
     SQL_TEXT:SQL 文本。 
     PIECE:SQL 語句塊的序號  
V$SQLTEXT 中的連接列  
Column   View   Joined Column(s) 
HASH_VALUE, ADDRESS V$SQL, V$SESSION HASH_VALUE, ADDRESS 
HASH_VALUE. ADDRESS V$SESSION   SQL_HASH_VALUE, SQL_ADDRESS 
按 pid 查看正在執行的程序: 
     select sid,program from v$session b where paddr in (select addr from v$process where spid=$pid); 
按 pid 查看正在執行的 sql 語句  
     select sql_text from v$sqltext where hash_value in (select sql_hash_value from v$session where   
     PADDR in (select addr from v $process where spid=$pid)) order by piece; 
V$SESSION_WAIT 視圖  
      這是一個尋找性能瓶頸的關鍵視圖。它提供了任何情況下 session 在數據庫中當前正在等待什么 (如果 session 當前什么也沒在做,則顯示它最后的等待事件)。當系統存在性能問題時,本視圖可以做為一個起點指明探尋問題的方向。 
     V$SESSION_WAIT 中,每一個連接到實例的 session 都對應一條記錄。 
常用列: 
     SID: session 標識  
     EVENT: session 當前等待的事件,或者最后一次等待事件。 
     WAIT_TIME: session 等待事件的時間 (單位,百分之一秒) 如果本列為 0,說明 session 當前 session 還未有任何等待。 
     SEQ#: session 等待事件將觸發其值自增長  
     P1, P2, P3: 等待事件中等待的詳細資料  
     P1TEXT, P2TEXT, P3TEXT: 解釋說明 p1,p2,p3 事件  
附注: 
     1.State 字段有四種含義﹕ 
     Waiting:SESSION 正等待這個事件。 
     Waited unknown time:由于設置了 timed_statistics 值為 false,導致不能得到時間信息。表示發生了等待,但時間
很短
     Wait short time:表示發生了等待,但由于時間非常短不超過一個時間單位,所以沒有記錄。 
     Waited knnow time:如果 session 等待然后得到了所需資源,那么將從 waiting 進入本狀態。 
     Wait_time 值也有四種含義: 
值 0:最后一次等待時間 (單位:10ms),當前未在等待狀態。 
      值 =0:session 正在等待當前的事件。 
      值 =-1:最后一次等待時間小于 1 個統計單位,當前未在等待狀態。 
      值 =-2:時間統計狀態未置為可用,當前未在等待狀態。 
3.Wait_time 和 Second_in_wait 字段值與 state 相關: 
      如果 state 值為 Waiting,那么 wait_time 值無用。Second_in_wait 值是實際的等待時間(單位:秒)。 
      如果 state 值為 Wait unknow time,那么 wait_time 值和 Second_in_wait 值都無用。 
      如果 state 值為 Wait short time,那么 wait_time 值和 Second_in_wait 值都無用。 
      如果 state 值為 Waiting known time,那么 wait_time 值就是實際等待時間(單位:秒),Second_in_wait 值無用。 
V$SESSION_WAIT 中的連接列  
Column View Joined Colum 
SID V$SESSION SID 
查看 session 等待事件: 
     select sid,event from v$session_wait where event not like’rdbms%’and event not like’SQL*Net message%’; 
      多數的 session 都是空閑事件如:SQL*Net message from client, pipe get, PMON timer 等

“ORACLE session 中 SPID、PID、SID 的區別是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計3081字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 汽车| 忻城县| 固原市| 正安县| 吴桥县| 旬阳县| 桦甸市| 谢通门县| 讷河市| 尼木县| 鹰潭市| 巩义市| 邹平县| 正蓝旗| 友谊县| 蚌埠市| 依兰县| 建昌县| 离岛区| 航空| 晋中市| 吴桥县| 永顺县| 闻喜县| 新郑市| 博白县| 汾西县| 安仁县| 金山区| 安泽县| 绵竹市| 梓潼县| 沂水县| 涿鹿县| 蒙城县| 绥滨县| 土默特右旗| 佛学| 大余县| 阳江市| 大方县|