您好,登錄后才能下訂單哦!
這篇文章主要介紹“oracle中的v$process是什么”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“oracle中的v$process是什么”文章能幫助大家解決問題。
前言:
process:這個參數限制了能夠連接到SGA的操作系統進程數(或者是Windows 系統中的線程數),這個總數必須足夠大,從而能夠適用于后臺進程與所有的專用服務器進程,此外,共享服務器進程與調度進程的數目也被計算在內.此外,共享服務器進程與調度進程的數目也被計算在內.因此,在專用服務器環境中,這是一種限制并發連接數的方法。
介紹:
oracle提供了相應的視圖v$process用來監視整個數據庫的進程情況。
v$process進程官方文檔的介紹:This view has one row for each Oracle process connected to the instance. The columns PGA_USED_MEM, PGA_ALLOC_MEM, PGA_FREEABLE_MEM and PGA_MAX_MEM can be used to monitor the PGA memory usage of these processes. 用于監視每個進程的內存使用情況;
詳細的V$PROCESS視圖如下:
Column
Datatype
Description
解釋
ADDR
RAW(4 | 8)
Address of the process state object
可以和v$session的paddr字段關聯
PID
NUMBER
Oracle process identifier
SPID
VARCHAR2(24)
Operating system process identifier
操作系統進程identifier
PNAME
VARCHAR2(5)
Name of this process
進程的名稱(從中可以看到前臺和后臺進程)
USERNAME
VARCHAR2(15)
Operating system process username
運行此進程的操作系統的用戶名稱;
Note: Any two-task user coming across the network has "-T" appended to the username.
SERIAL#
NUMBER
Process serial number
TERMINAL
VARCHAR2(30)
Operating system terminal identifier
終端名稱類似于v$session;
PROGRAM
VARCHAR2(48)
Program in progress
程序的名稱
TRACEID
VARCHAR2(255)
Trace file identifier
跟蹤文件的ID
TRACEFILE
VARCHAR2(513)
Trace file name of the process
跟蹤文件的名稱及路徑
BACKGROUND
VARCHAR2(1)
1 for a background process; NULL for a normal process
值為1代表是后臺進程
LATCHWAIT
VARCHAR2(8)
Address of the latch the process is waiting for; NULL if none
等待LATCH的情況
LATCHSPIN
VARCHAR2(8)
This column is obsolete
PGA_USED_MEM
NUMBER
PGA memory currently used by the process
PGA的消耗情況
PGA_ALLOC_MEM
NUMBER
PGA memory currently allocated by the process (including free PGA memory not yet released to the operating system by the server process)
當前PGA允許消耗的內存
PGA_FREEABLE_MEM
NUMBER
Allocated PGA memory which can be freed
PGA_MAX_MEM
NUMBER
Maximum PGA memory ever allocated by the process
進程中最大的PGA內存分配
延伸:
1、v$process進程中的SPID提供了每個進程對應的操作系統的PID,因此如果監控某個操作系統的PID有異常,可以通過這個視圖去查找相應的SQL語句。
腳本如下:
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/
2、在數據庫查找有問題的session,然后在操作系統kill掉相應的進程,根據SESSION的SID查找相應的操作系統PID
SELECT A.SID,B.SPID,A.MACHINE,C.SQL_TEXT FROM v$SESSION A ,v$process B,V$SQL C
where a.paddr=b.addr
AND A.PREV_SQL_ID=C.SQL_ID
AND A.SID='&sid'
3、v$process和v$session的關系
oracle的連接數(sessions)與其參數文件中的進程數(process)相關,它們的關系如下:sessions=(1.1*process+5),若果資源允許,而當前process 數過小,那么可以適當增大processs 數( session 數依賴于process數,一般不去直接修改session數)。
Shared Server中的Process 一個對應著Oracle 中的一個或者一個以上的Session。Dedicated Server中,一個session對應一個process,但是一個process未必對應一個session。
4、修改v$process和v$session參數
以上的v$process和v$session參數的設置只是經驗值,但是在實際的運行過程由于業務或者架構的改變可能實際的系統的session數量和process數量超過了v$process和v$session參數的值,直接導致后面連接的用戶登錄不了;
查看當前session配置:show parameter sessions;
查看當前process配置:show parameter processes;
修改參數:alter system set processes=1000 scope=spfile;該參數重啟后生效。
關于“oracle中的v$process是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。