原帖地址:http://hougbin.iteye.com/blog/847770
oracle的服务器进程分为:专用(DEDICATED)服务器进程和共享(SHARED)服务器进程
一、专用服务器进程
数据库服务器要求每个用户拥有一个专用服务器进程,当用户比较多的时候,则其对服务器的硬件资源,特别是内存,会产生比较大的压力。
适用环境:
1、 只有少数客户端。
2、 为数据仓库搭建的数据库系统。
3、 联机事务处理系统。(大事务的处理,若使用共享服务器模式,很有可能会造成有些事务需要进入队列排队,响应时间拉长)
二、共享服务器进程
多个用户程序可以并发共用一个服务器进程,客户端程序通过调用调度程序与服务器进程相连
如何查看是否是共享服务器模式?
1 查看调度程序
SQL> show parameter dispatchers;
NAME TYPE
VALUE
------------------------------------ -----------
-----------------------------
dispatchers string
(PROTOCOL=TCP)
(SERVICE=sdecp
yXDB)
max_dispatchers integer
5
mts_dispatchers string (PROTOCOL=TCP)
(SERVICE=sdecp
yXDB)
mts_max_dispatchers integer
5
2、查看共享服务器进程数
SQL> show parameter
shared_servers;
NAME TYPE
VALUE
------------------------------------ -----------
-----------------------------
max_shared_servers integer
20
shared_servers
integer 1
3、预留
SQL> show parameter shared_server_session;
NAME TYPE VALUE
------------------------------------ ----------- ---------
shared_server_sessions integer 165
其中
dispatchers:调度程序服务器进程
max_shared_servers :指定同时运行的最大服务器进程数
shared_servers :启动实例时可以创建的服务器进程数
shared_server_sessions:指定用于用户会话的总数,配置此参数可为专用服务器保留用户会话
4.改变进程数
SQL> alter system set shared_servers=2;
系统已更改。
SQL> show parameter shared_servers;
NAME TYPE VALUE
------------------------------------ ----------- -------------------------
max_shared_servers integer 20
shared_servers integer 2
SQL>
优点是客户端进程多对一,增加了数据库可以支持的用户数。缺点就是各个用户共享一个进程,对用户访问数据库的性能有所影响。