4.3.1.1 减少分发器进程之间的竞争
为了减少竞争,考虑如下:
--增加分发器进程
总的分发器进程数量是被MAX_DISPATCHERS这个初始化参数控制的。你需要在增加分发器进程之前增加这个值。
--使得连接池可用
当系统负载增加并且分发器吞吐量最大化了。没有必要增加更多的分发器。但是可以考虑配置分发器支持更多用户的连接池。
--使会话倍增
链接管理进程会使用倍增去建立和保持来自多用户的网络会话到单独的分发器上。例如。几个用户进程能够通过从链接管理进程的单独链接区链接到一个分发器上。会话倍增是有好处的,因为它最大化了分发器进程的使用。倍增对于对数据库连接会话和分发器是有好处的。
4.2.3 为共享服务器标志链接
这个部分讨论了如何去为共享服务器标志链接。
等待队列中平稳增长的等待时间标志着共享服务器的竞争。为了检查等待时间数据,使用动态性能视图V$QUEUE。这个视图包括了现实等待队列请求活动的统计信息。默认的,这个视图仅仅对于sys用户是可见的,对于其他用户需要使用select any table授予系统权限。例如system,表4-3展示了在队列中的请求等待时间和请求的数量。
表4-3
列 描述
wait 显示了总的等待时间,以毫秒为单位,对于曾经在队列中的所有请求。
totalq 显示了队列中总的请求数量。
当应用运行以下脚本的时候,间断性的监视这些统计数据。
SELECT DECODE(TOTALQ,0,'NO REQUESTS',WAIT/TOTALQ||'HUNDREDTHS OF SECONDS') "AVERAGE WAIT TIME PER REQUESTS"
FROM V$QUEUE
WHERE TYPE='COMMON';
这个请求返回以下的计算结果
AVERAGE WAIT TIME PER REQUEST
-----------------------------
.090909 HUNDREDTHS OF SECONDS
从结果中,你可以得知在处理之前一个请求在队列中平均等待了0.09毫秒。
你也可以通过下列脚本决定目前有多少共享服务器正在运行:
SELECT COUNT(*) "SHARED SERVER PROCESSES"
FROM V$SHARED_SERVER
WHERER STATUS!='QUIT';
结果显示如下:
Shared Server Processes
-----------------------
10
如果你共享服务器的资源连接,那么首先要通过检查shared pool和large pool确保它不是一个内存连接。如果性能持续低下,那么你想要生成更多的资源来减少共享服务器进程的竞争,你可以修改如下的初始化参数。
MAX_DISPATCHERS
MAX_SHARED_SERVERS
DISPATCHERS
SHARED_SERVERS
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24799772/viewspace-679283/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24799772/viewspace-679283/