ITPub博客

首页 > 数据库 > Oracle > 性能调优学习笔记(七)

性能调优学习笔记(七)

原创 Oracle 作者:halfgene 时间:2008-01-23 22:58:21 0 删除 编辑
Tuning the Oracle Shared Server
学习目的
1、用户管理和共享服务器环境的关系
2、配置共享服务器环境,优化性能
3、诊断和解决与共享服务器进程有关的性能[@more@]内容:
一、关于共享服务器
共享服务器用于多用户的SESSION共享一个服务器进程。请求->请求队列->服务器进程->返回队列
而专用服务器模式,一个用户一个SESSION就占用一个服务器进程
二、Monitoring Dispatchers
1、相关视图
– v$shared_server_monitor
查看最大连接数,最大SESSION数(取决于数据库参数sessions),当前使用的SESSION数
– v$dispatcher
a、查询各客户端的繁忙情况
SQL> SELECT network "Protocol", status "Status",
2 SUM(OWNED) "Clients",
3 SUM(busy)*100/(SUM(busy)+SUM(idle)) "Busy Rate"
4 FROM v$dispatcher
5 GROUP BY network, status;
如果繁忙率大于>50%,应该增加该客户端的dispatcher;
同理,应该减少空闲的Dispatchers
b、如何查看用户是否在等待dispatcher
SQL> SELECT DECODE(SUM(totalq),0,'No Responses',
2 SUM(wait)/SUM(totalq)) "Average wait time"
3 FROM v$queue q, v$dispatcher d
4 WHERE q.type = 'DISPATCHER'
5 AND q.paddr = d.paddr;
– v$dispatcher_rate
包含每个dispatcher的速率统计表。
2、如何增加或减少dispatchers
SQL> ALTER SYSTEM SET dispatchers = ‘protocol, number’;
.修改只对重新连接的session有效
三、监控共享服务器
1、查看状态
SQL> SELECT name, requests,
busy*100/(busy + idle) "BUSY %", status
FROM v$shared_server
WHERE status != 'QUIT';
2、查看共享服务器进程竞争状态
SQL> SELECT DECODE( totalq, 0, 'No Requests',
wait/totalq || 'hundredths of seconds')
"Average Wait Time Per Requests"
FROM v$queue
WHERE type = 'COMMON';
3、如何增加减少共享服务器数量
ALTER SYSTEM SET SHARED_SERVERS = number;
四、监控进程使用情况
1、相关视图
v$circuit:包含
. Server address
. Dispatcher address
. User session address
2、查看连接类型
SELECT sid, serial#, username, server FROM v$session;
五、共享服务器和内存使用状况
共享服务器模式时,一些用户信息会进入共享池。
如果没有设置LARGER POOL,全部信息都储存在共享池。
Overall memory demand is lower when using shared servers.
共享服务器模式使用UGA进行排序。
六、常见问题
.数据库监听未起来
.共享服务器的参数设置不正确
.dispatcher进程被删除(由于被多用户使用同一进程)
.DBA没有使用专用服务器的连接,无法执行start up和shutdown命令
.PROCESSES参数设置太低
七、相关字典
. v$circuit: Contains information about user connections to the database
. v$dispatcher: Provides information on the dispatcher processes
. v$dispatcher_rate: Provides rate statistics for the dispatcher processes
. v$queue: Contains information on the multithread message queues
. v$shared_server_monitor: Information for tuning shared server connections
. v$session: Lists session information for each current session
. v$shared_server: Contains information about the shared server processes
A query to report the dispatcher, session, and process mapping using shared servers:
SQL> SELECT d.network network, d.name disp,
2 s.username oracle_user, s.sid sid, s.serial# serial#,
3 p.username os_user, p.terminal terminal, s.program program
4 FROM v$dispatcher d, v$circuit c, v$session s, v$process p
5 WHERE d.paddr = c.dispatcher(+)
6 AND c.saddr = s.saddr(+) AND s.paddr = p.addr (+)
7 ORDER BY d.network, d.name, s.username;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/594892/viewspace-998280/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 继续写博
下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    44
  • 访问量
    52947