查看一下数据库现有的进程数,是否已经达到参数processes的大小

查看一下数据库现有的进程数,是否已经达到参数processes的大小,第1张

查看一下数据库现有的进程数,是否已经达到参数processes的大小

   -- select count(*) from v$process  取得数据库目前的进程数。

   -- select value from v$parameter where name = 'processes'取得进程数的上限

(1)查看当前会话数、processes和sessions值,发现session数14和processes值150已经非常接近

SQL> select count(*) from v$session

  COUNT(*)

----------

       146

SQL> show parameter processes

NAME                                 TYPE                   VALUE

------------------------------------ ------------------------------

aq_tm_processes                      integer                0

db_writer_processes                  integer                2

gcs_server_processes                 integer                0

job_queue_processes                  integer                10

log_archive_max_processes            integer                2

processes                            integer                150

(2) Modify the two parameter(processes,sessions)

SQL> alter system set processes=300 scope=spfile

System altered.

SQL> alter system set sessions=335 scope=spfile

System altered.

(3) Let's shutdown and startup database in order to let the two parameter taken effect.

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup        

ORACLE instance started.

Total System Global Area 1610612736 bytes

Fixed Size                  2030456 bytes

Variable Size             989856904 bytes

Database Buffers          603979776 bytes

Redo Buffers               14745600 bytes

Database mounted.

Database opened.

SQL> exit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

$ sqlplus /nolog

(4) test the result.

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 12月 9 09:53:13 2011

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

SQL> conn sys/oracle@orcl as sysdba

Connected.

SQL> 

--the end.

session 和 process的区别:

连接connects,会话sessions和进程pocesses的关系

每个sql login称为一个连接(connection),而每个连接,可以产生一个或多个会话,如果数据库运行在专用服务器方式,

一个会话对应一个服务器进程(process),如果数据库运行在共享服务器方式,一个服务器进程可以为多个会话服务。

session 和 process的关系,tom在他的书里写的很清楚了

一个process可以有0个,1个或者多个session

一个session也可以存在这个或者那个process中

oracle中session跟process的研究

使用方法:

首先看看v$session跟v$processwww.hbbz08.com 中主要的字段属性:

v$session(sid,serial#,paddr,username,status,machine,terminal,sql_hash_value,sql_address,,,)

v$process(addr,spid,,,)

可看到v$session中的paddr跟v$process中的addr对应,也即会话session在数据库主机上对应进程的进程地址.

这里我们要先定位该session正在执行的sql语句,此时我们可以查询如下的语句: select sql_text

from v$sqltext_with_newlines

where (hash_value,address) in (select sql_hash_value,sql_address from v$session where sid=&sid) order by address,piece


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10017490.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存