信创兼容适配如何推动企业技术转型与创新发展
358
2023-11-28
这篇文章主要介绍“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 identifierSPID
VARCHAR2(24)
Operating system process identifier
操作系统进程identifierPNAME
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 numberTERMINAL
VARCHAR2(30)
Operating system terminal identifier
终端名称类似于v$session;PROGRAM
VARCHAR2(48)
Program in progress
程序的名称TRACEID
VARCHAR2(255)
Trace file identifier
跟踪文件的IDTRACEFILE
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 obsoletePGA_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 freedPGA_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 aWHERE (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是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~