永发信息网

什么是数据库连接?连接和会话之间有什么关系

答案:2  悬赏:0  手机版
解决时间 2021-03-11 17:13
  • 提问者网友:骑士
  • 2021-03-10 20:20
什么是数据库连接?连接和会话之间有什么关系
最佳答案
  • 五星知识达人网友:青尢
  • 2021-03-10 21:22
连接 (connection)与会话 (session)这两个概念均与用户进程 (user process)紧密相关,但二者又具有不同的含义。
连接 :用户进程和 Oracle 实例间的通信通道(communication pathway)。这个通信通道是通过进程间的通信机制(interprocess communication mechanisms)(在同一个计算机上运行用户进程和 Oracle 进程)或网络软件(network software)(当数据库应用程序与 Oracle 服务器运行在不同的计算机上时,就需要通过网络来通信)建立的。
会话 :用户通过用户进程与 Oracle 实例建立的连接[此处连接与上文中的连接含义不同 ,主要指用户和数据库间的联系 ]。例如,当用户启动 SQL*Plus 时必须提供有效的用户名和密码,之后 Oracle 为此用户建立一个会话。从用户开始连接到用户断开连接(或退出数据库应用程序)期间,会话一直持续。
Oracle 数据库中的同一个用户可以同时创建多个会话。例如,用户名/密码为的SCOTT/TIGER 用户可以多次连接到同一个 Oracle 实例。
当系统没有运行在共享服务模式下时,Oracle 为每个用户会话创建一个服务进程(server process)。而当系统运行在共享服务模式下时,多个用户会话可以共享同一个服务进程。
希望能帮到您!
全部回答
  • 1楼网友:一把行者刀
  • 2021-03-10 22:09
给你复制几段,顺便自己也复习一下: 连接 连接:是从客户到oracle实例的一条物理路径。连接可以是客户端通过网络建立(客户端和数据库不在同一个服务器上),也可能是客户端和数据库都在一个服务器上通过ipc机制建立。 会话 会话是实例中的一个逻辑实体,可以在会话上执行sql、提交事务等。 服务进程 服务进程就是代表客户会话完成工作的进程。应用向数据库发送的sql语句最后就是由服务进程接受并执行。无论是共享服务器还是专用服务器,服务进程的作用都是处理提交的sql语句。 区别和联系 连接与会话 一提到连接,很多人第一印象都认为连接对应的就是会话。其实不然在一个连接上可以对应0个、一个、多个会话。会话也可以独立于连接,当然此次连接的状态为空闲状态。同一条物理连接上的会话都是单独而且独立的,每个会话可以使用不同的用户身份。 会话与服务进程 专用服务器: 同一个连接上的所有会话都有同一个服务进程创建。 共享服务器: 同一个连接上的会话不一定都是由相同的服务进程创建。 连接与服务进程 专用服务器模式: 客户端向数据库服务器发出请求,当监听器监听到之后会创建一个服务进程专门为该连接服务的服务进程(或者是线程),为一一对应的关系。 共享服务器模式下: 客户端向数据库服务器发出请求,当监听收到之后会分配一个调度程序与客户建立连接。在共享服务器模式下,相当于在一个池中创建好一些服务进程。当客服端发出请求时,与客户端连接的调度程序会将请求放入请求队列,让后从服务进程的池中随机取出一个空闲的服务进程为其服务把产生的结果放到相应队列,结束之后服务进程会重新变为空闲进程。 note:一旦客户进程与服务进程建立连接,监听就不在被需要。 1. 如果是dedicated server,则客户端只能创建dedicated server connection 2. 如果是shared server,则客户端能创建dedicated server connection和shared server connection如果是从服务器通过ipc机制连接的为dedicated server connection,如果是通过tns连接则为shared server connection。这是因为通过tns连接时需要经过网络发送请求,由监听器分配调度程序负责分配服务进程。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯