DBA之路--oracle的可选配置项MTS(共享服务器)

OracleMTS是数据库的一种配置,通过Dispatcher进程处理多个并发请求,利用SGA的请求和响应队列提高处理效率。MTS适合连接数量多且请求短小的场景,其性能与LargePoolSize设置密切相关。监控Dispatcher的繁忙率和请求等待时间以优化配置。对于专用连接,可以在Tnsnames.ora中设置SRVR=DEDICATED。
摘要由CSDN通过智能技术生成

oracle MTS共享服务器

MTS(multi-thread server)属于数据库安装时的可选配置项

最大优点是在不要服务器增加物理内存时提升连入数据库的并发访问数了。就好比餐馆有一对一服务的服务员和一对多服务的服务员,服务总量一定,前者服务员数量肯定多余后者。采取MTS会大量消耗cpu性能,所以仅适合连接数量多但是请求短小的使用场景

#口述架构与流程
1、总体分成客户端和服务端两部分
2、客户端就是用户进程了,会有多个
3、安装MTS的数据库,会单独有一个dispathcher进程与外部客户端交互,该进程同时也跟oracle内部进行交互请求和响应
4、当多个客户端进程发起一个连接执行事务时,dispathcher进程会先依次将这些连接的请求放进sga系统全局区中请求队列request queue中,然后oracle服务器进程会依次读取队列内容进程处理,优先处理完的会再次放到sga的响应队列response queue中,然后按照顺序依次给到dispathcher进程。
5、dispathcher进程在依照结果给到客户端响应
#MTS使用时与大池的大小large_pool_size参数息息相关,所以该参数需要设定到合适位置。
SELECT sum(value) "Max MTS Memory Allocated"  
  FROM v$sesstat ss, v$statname st  
  WHERE name = 'session uga memory max'  
  AND ss.statistic#=st.statistic#
  #用于获取自MTS启用以来,所使用过的最大内存数量。可以依照这个来进行大池参数的判断

select name,(busy/(busy+idle))*100 "dispatcher % busy rate" from v$dispatcher;
#用于查看dispatcher数量使用比例,如果大于50%,需要增加dispatcher进程数量
SELECT decode(totalq,0,'No Requests') "Wait Time",Wait/totalq ||'hundredths of seconds' "Average Wait time per request" FROM V$QUEUE WHERE type = 'COMMON'#用于判断共享进程服务是否够用,获取每次请求的平均等待时间
#在MTS配置的Server请求Dedicate的连接
  #Tnsnames.ora中做服务名配置时加入SRVR=DEDICATED这个选项就可以了,示例如下:
  billing =
  (DEscrīptION =
   (
    ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = ks3)(PORT = 1521))
   )
   (
    CONNECT_DATA =
    (SERVICE_NAME = billing)
    (SRVR = DEDICATED)
   )
  )

进阶:https://www.cnblogs.com/weaver1/archive/2012/02/13/2348706.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值