ORACLE sid,pid,spid總結
概念上:
1.spid (system process id) 是作業系統層面的程式id .
2.pid(process id) 這個是基於oracle的程式id個人理解為就是oracle給自己的程式的一個編號。
3.sid.(這個就是session 的id) 這個個人理解為,就是有人在同oracle連線會話,oracle為其分配的一個編號。長用於連線其他列。
說道這還的和幾個動態效能檢視聯絡起來。
1.v$process檢視
此檢視包含當前系統中oracle的所有的程式資訊,常被用於將oracle或服務程式的作業系統程式ID與資料庫session之間建立聯絡。
常用列:
ADDR:程式物件地址
PID:oracle程式ID
SPID:作業系統程式ID
V$PROCESS中的連線列 ADDR 通常與V$SESSION PADDR相連線。
如:select p.addr,P.PID,P.PID, s.paddr from v$process p,v$session s
where P.ADDR=S.PADDR
2.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語句的詳細
3.v$sqltext檢視
此檢視包括共享池(share poll)中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;
4.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等
1.spid (system process id) 是作業系統層面的程式id .
2.pid(process id) 這個是基於oracle的程式id個人理解為就是oracle給自己的程式的一個編號。
3.sid.(這個就是session 的id) 這個個人理解為,就是有人在同oracle連線會話,oracle為其分配的一個編號。長用於連線其他列。
說道這還的和幾個動態效能檢視聯絡起來。
1.v$process檢視
此檢視包含當前系統中oracle的所有的程式資訊,常被用於將oracle或服務程式的作業系統程式ID與資料庫session之間建立聯絡。
常用列:
ADDR:程式物件地址
PID:oracle程式ID
SPID:作業系統程式ID
V$PROCESS中的連線列 ADDR 通常與V$SESSION PADDR相連線。
如:select p.addr,P.PID,P.PID, s.paddr from v$process p,v$session s
where P.ADDR=S.PADDR
2.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語句的詳細
3.v$sqltext檢視
此檢視包括共享池(share poll)中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;
4.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等
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21416913/viewspace-743930/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE SPID/PID/SID區別Oracle
- ORACLE session中SPID、PID、SID的區別OracleSession
- oracle 透過pid 找到sid 再找出執行sqlOracleSQL
- pid,sid相互查詢,根據PID查詢sqlSQL
- oracle sidOracle
- 列印對應spid或sid所對應的sql以及其執行計劃SQL
- 有關oracle SIDOracle
- oracle_sid與netmgr listener的sidOracle
- Oracle 總結Oracle
- 關於db_name,oracle_sid,service_names,global_names等的總結說明Oracle
- Oracle SID VS Service NameOracle
- Oracle SID & SERVICE_NAMEOracle
- Oracle特性總結Oracle
- Oracle synonyms總結Oracle
- Oracle session總結OracleSession
- oracle sqlldr 總結OracleSQL
- Oracle SID爆破工具SidGuessOracle
- 一、更改ORACLE SID名稱Oracle
- export ORACLE_SID=founder exportExportOracle
- oracle sid,instance_name,db_name,oracle_sid之間的關係Oracle
- oracle體系結構總結Oracle
- Oracle學習總結Oracle
- Oracle rman 命令總結Oracle
- Oracle 調優總結Oracle
- Oracle SET 命令總結Oracle
- oracle hints用法總結Oracle
- ORACLE鎖的總結Oracle
- Oracle調優總結Oracle
- Oracle 函式總結Oracle函式
- Oracle Tuning總結Oracle
- 【轉】怎樣修改Oracle的SIDOracle
- 更改Oracle資料庫的SIDOracle資料庫
- Oracle identifiers :SID (System Identifier)OracleIDE
- ORACLE 繫結變數用法總結Oracle變數
- oracle 11g 更改sid和dbnameOracle
- oracle 816_init$SID.oraOracle
- oracle基本命令總結Oracle
- Oracle之Hint使用總結Oracle