日期:2014-05-17  浏览次数:20931 次

oracle专用服务器连接和共享服务器连接疑问
以下问题是在oracle书中不大明白的地方,可能说的有问题请大家帮忙理清下:
1.如果oracle连接是专用服务器,java语言+oracle数据库的web项目中,每个用户登录是就是一个连接吗?
  如果每个用户登录都是一个连接,那么用户很多适合用专用服务器连接吗?
2.oracle在对数据的处理很严谨,涉及到了很多种锁如tx锁用户在修改数据时会锁住数据,如果多个用户在修改同一条数据就会阻塞,这样用户体验就很差,这种改怎么办呢?

 谢谢
oracle

------解决方案--------------------
1:这个有连接池作成本控制

2:在高并发方面,Oracle做的是最好的  这里你就不必忧虑了
------解决方案--------------------
1.如果oracle连接是专用服务器,java语言+oracle数据库的web项目中,每个用户登录是就是一个连接吗?如果每个用户登录都是一个连接,那么用户很多适合用专用服务器连接吗?

如果不采用中间件如tomcat的话,jdbc直接连接oracle,而oracle采用专用服务器,则每个连接建立一个连接,这种方式只有早期的CS模式用的多,当然也可以用共享模式,类似中间件的连接池,BS推荐使用中间件的连接池,这样可以减轻数据库负担,同时维护方便

2.oracle在对数据的处理很严谨,涉及到了很多种锁如tx锁用户在修改数据时会锁住数据,如果多个用户在修改同一条数据就会阻塞,这样用户体验就很差,这种改怎么办呢?

用户修改数据是很快的,如果发生阻塞,一般来说是应用设计出现了问题,除非你的应用比较特殊,记得一个事物修改完数据后立刻提交!
------解决方案--------------------
楼主把共享和专有连接与访问锁混淆了。

专有连接与共享连接主要是针对客户端连接是否分配专有的进程来服务。
专有连接会为每个客户端连接分配一个进程来服务,及时这个连接没有任何请求,这个进程也不会被其他连接使用
对于共享连接,可以使用少量的进程提供大量的客户,客户端连接请求排在队列中,这些进程从队列中获取客户请求,处理结果返回给客户端。所以服务进程被所有客户连接共享。

记录插入修改删除查询是与锁有关。与是否使用专有和共享没有关系。对数据访问的锁机制和事务隔离级对于专有或共享是一样的。