oracle中的v$process是什么

126次阅读
没有评论

共计 3049 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要介绍“oracle 中的 v$process 是什么”的相关知识,丸趣 TV 小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“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 是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注丸趣 TV 行业资讯频道,丸趣 TV 小编每天都会为大家更新不同的知识点。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计3049字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)