oracle数据库连接与会话

oracle数据库连接与会话

ID:8970938

大小:31.00 KB

页数:2页

时间:2018-04-13

oracle数据库连接与会话_第1页
oracle数据库连接与会话_第2页
资源描述:

《oracle数据库连接与会话》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、连接与会话当使用SQL*Plus和TOAD之类的工具建立与数据库之间的连接时,应该明确连接与会话的区别。连接并不是会话的同义词。一个连接可能有零个、一个或多个建立在其上的会话。每个会话是分开且独立的,即使他们共享一个同样的物理连接到数据库。会话中的某个提交并不影响在该连接上的任何其他会话。事实上,使用该连接的每个会话可以使用不同用户身份。在Oracle中,一个连接是一个在客户端进程与数据库实例之间的物理线路——网络连接。该连接可能是一个专用服务器进程或一个调度进程。一个连接可以有零个或更多的会话,即一个连接的存在并不一定伴随着对应的会话存在。另外,

2、一个会话不一定有连接。一个物理连接可以被客户端删除,只保留一个空闲会话。当客户端要在该会话中完成一些操作时,就需要重新建立物理连接。 ·连接:一个连接是一个从客户端到一个数据库实例的物理通道。一个连接或者通过网络或者通过IPC机制建立连接。最典型的连接是建立在客户端进程和专用服务器或共享服务器之间。然而,使用Oracle的连接管理器(CMAN)时,一个连接可以是在客户端与CMAN之间或CMAN与数据库之间。 ·会话:一个会话是存在于实例中的逻辑实体。它是一个表示唯一会话的内存数据结构的集合,用于执行SQL、提交事务并运行服务器中存储过程等。实际

3、上,一个连接有多个会话是非常普遍的。使用SQL*Plus可以说明连接和会话间的区别。使用autotrace命令时可产生两个会话。通过一个使用单个进程的连接也可以建立两个会话。首先,执行以下操作。SQL>selectusername,sid,serial#,server,paddr,statusfromv$sessionwhereusername=USER/USERNAMESIDSERIAL#SERVERPADDRSTATUS-------------------------------------------OPS$TKYTE153 3196 DE

4、DICATEDAE4CF614ACTIVE其中,user是系统函数,结果为当前连接数据库的用户。目前结果显示的是一个单独连接专用服务器的会话。PADDR列是唯一的专用服务器进程的地址。其次,打开autotrace,来查看在SQL*Plus中执行语句的统计数据。SQL>setautotraceonstatisticsSQL>selectusername,sid,serial#,server,paddr,statusfromv$sessionwhereusername=USER/这样,就打开了两个会话,但是两者都使用一个专用服务器进程。查询结果显示它们

5、都有相同的PADDR列值。因此,两个会话使用一个进程,即单个连接。注意,其中一个会话,即最初的会话(SQL*Plus),是处于主动(active)状态。该会话运行查询显示结果信息。但另外一个处于被动状态(inactive)的会话就是autotrace会话,其职责是监视第一个会话并报告该会话所做的一切。在SQL*Plus中打开autotrace后,当执行DML操作(insert、update、delete、select和merge)时,SQL*Plus将完成下列操作。1)如果第二个会话不存在,则使用当前连接创建一个新的会话。2)SQL*Plus要求产

6、生的新会话查询v$sesstat视图,为运行DML的会话记录初始统计数据。3)在第一个会话中运行DML操作。4)在完成DML语句后,SQL*Plus将要求其他会话再次查询V$sesstat并产生显示执行DML会话在统计数据上的差异报告。如果关闭autotrace,SQL*Plus将终止第二个会话并不再监视v$session视图。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。