龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

高手谈Oracle减少共享服务器进程

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
在向大家详细介绍 Oracle 减少共享服务器进程之前,首先让大家了解下DEC.net,然后全面介绍Oracle减少共享服务器进程,希望对大家有用。DEC.net分发进程接近0.5%时间是忙的,TCP分发进程

在向大家详细介绍Oracle减少共享服务器进程之前,首先让大家了解下DEC.net,然后全面介绍Oracle减少共享服务器进程,希望对大家有用。DEC.net分发进程接近0.5%时间是忙的,TCP分发进程接近3%时间是忙的。若占用率超过50%,则应该用增加调度进程的网络协议来改善性能。若要检查等待响应时间的增长情况,可通过查询动态性能表V$QUEUE(需有SELECT ANY TABLE特权)来检查。例如:

  1. SQL>SELECT network "protocol",  
  2. 2>DECODEE(SUM(totalq),0,'No Responses'),  
  3. 3>SUM(wait)/SUM(totalq)||  
  4. 4>'hundredths of seconds,"Average Wait Time Per Response"  
  5. 5>FROM V$QUEUE q,V$DISPATCHER d  
  6. 6>WHEEE q.type='DISPATCHER' AND q.paddr=d.paddr  
  7. 7>GROUP BY network; 

其中表V$QUEUE中的wait和totaq列的含义如下:
◆ wait:它表示1%秒单位时间内所有已在队列中等待响应的时间。
◆ totalq:表示在队列中的总的响应次数。

可通过以下办法来增加调度进程:
(1)用SQL * DBA的“Configure Multi-Threaded Dipatchers”对话框。
(2)用具有MTS_DISPATCHER参数的ALTER SYSTEM命令。

调度进程的总数由初始化参数MTS_MAX-DIPATCHER限制,在增加调度进程之前需要增加该参数,缺省值为5,最大值依赖操作系统。

Oracle减少共享服务器进程的争用

要Oracle减少共享服务器进程的争用,首先需确定是否有争用。请求队列中请求等待时间的增长反映对共享服务器进程的争用。这可以通过查询动态性能表V$SQUEUE(需有SELECT ANY TABLE特权)来确定是否有争用。查询语句的格式如下:

  1. SQL>SELECT network "protocol", DECODE(totalq,o,'No Requests',  
  2. 2>wait/totalq||,'hundreadths of seconds',) "Average Wait Time Per Requests"  
  3. 3>FROM V$QUEUE  
  4. 4>WHERE typc='COMMON'; 

其中表V$QUEUE中的wait和totalq列的含义如下:
◆ wait:队列中1%秒单位时间内所有请求的等待时间。
◆ totalq:是队列中请求的总数。
用如下的查询可以确定有多少个服务器进程在运行:

  1. SQL>SELECT COUNT(*) "Shared Server Proccess"  
  2. 2>FROM V$ SHARED_SERVERS  
  3. 3>WHERE status!='QUIT'; 
  1. 闲扯Oracle数据导入
  2. 精炼概括Oracle性能测试
  3. 简介Oracle INDEX提示
  4. 五分钟精通Oracle Hints
  5. 简单介绍Oracle驱动表
精彩图集

赞助商链接