Oracle连接与会话
连接(connection):连接是从客户端到oracle数据库实例的一条物理路径。
会话(session):会话是数据库实例中存在的一个逻辑实体。
case1:一个连接可以有多个会话
SQL> col USERNAME format a20
SQL> select username ,sid,serial#,server,paddr,status from v$session where username =user;
USERNAME SID SERIAL# SERVER PADDR STATUS
-------------------- ---------- ---------- --------- ---------------- --------
SCOTT 421 1165 DEDICATED 000000029E296F18 ACTIVE
SQL> set autotrace on statistics
SQL> select username ,sid,serial#,server,paddr,status from v$session where username =user;
USERNAME SID SERIAL# SERVER PADDR STATUS
-------------------- ---------- ---------- --------- ---------------- --------
SCOTT 421 1165 DEDICATED 000000029E296F18 ACTIVE
SCOTT 422 4107 DEDICATED 000000029E296F18 INACTIVE
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
0 consistent gets
0 physical reads
0 redo size
993 bytes sent via SQL*Net to client
524 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
2 rows processed
SQL> set autotrace off;
PADDR地址相同,这两个会话都使用同一个专有服务器进程。
active的会话运行查询显示信息
inactive会话就是autotrace会话,它的任务是监视我们的实际会话,并报告它做了什么。这个过程如下:

case2:一个连接可以没有会话
在上面的SQL*PLUS窗口中,键入disconnect
SQL> disconnect
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
从技术上讲,这个命令应该叫destroy_all_session(清除所有会话)更合适,因为我们并没有真正的断开物理连接。
现在开启另一个SQL*PLUS窗口
oracle@test1: /oracle> sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 9 09:58:05 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from v$session where username='SCOTT';
no rows selected
SQL> col username format a20
SQL> select username,program from v$process where addr=hextoraw('000000029E296F18');
USERNAME PROGRAM
-------------------- ------------------------------------------------
oracle oracle@test1 (TNS V1-V3)
可以看到,scott用户下没有会话,但是仍有一个进程,相应地有一个物理连接(使用前面的PADDR)。
使用connect命令在这个没有会话的进程中创建一个新会话(connect应该叫做create_session更合适)。
使用之前的disconnect连接的SQL*PLUS执行如下:
SQL> conn scott/tiger
Connected.
SQL> select username ,sid,serial#,server,paddr,status
2 from v$session
3 where username=user;
USERNAME SID SERIAL# SERVER PADDR STATUS
-------------------- ---------- ---------- --------- ---------------- --------
SCOTT 421 1167 DEDICATED 000000029E296F18 ACTIVE
可以注意到,PADDR还是一样的,我们还是在使用同一条物理连接,但是SID可能和之前的一样也可能不一样。取决于注销时是否有别人登陆以及之前的SID是否可用。
PADDR就是我们专用服务器进程的进程地址
Oracle连接与会话的更多相关文章
- Oracle 连接、会话数的查看,修改
http://blog.csdn.net/xiaoyao6650/article/details/4027041 查看processes #当前的连接数 select count(*) from v$ ...
- 理解oracle中连接和会话
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp44 理解oracle中连接和会话 1. 概念不同:概念不同: 连接是指物 ...
- oracle连接-会话-进程
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;CREATE PROFILE kyc_pro LIMIT IDLE_TIME 2;alter user kyc_acc pro ...
- ORACLE定期清理INACTIVE会话
ORACLE数据库会话有ACTIVE.INACTIVE.KILLED. CACHED.SNIPED五种状态.INACTIVE状态的会话表示此会话处于非活动.空闲.等待状态.例如PL/SQL Dev ...
- 【转】ORACLE定期清理INACTIVE会话
源地址:http://www.cnblogs.com/kerrycode/p/3636992.html ORACLE数据库会话有ACTIVE.INACTIVE.KILLED. CACHED.SNIPE ...
- 数据库的连接、会话与SQLite
通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context).这个上下文是一段位于服务器端的内存:记录了本次连接的所有相关状态和运行数据. 连接(Connecti ...
- Oracle连接odbc数据源
Oracle连接odbc数据源 说明 oracle连接ODBC数据源有两种方式,hsodbc和dg4odbc,简单说dg4odbc是hsodbc的升级.两种连接方法大致一样,现将连接步骤说明如下: 检 ...
- ORACLE连接SQLSERVER
一.实验(实验成功) 1.实验目标:ORACLE连接SQLSERVER以及查询数据 2.搭建的环境: oracle 9i 9.0.2.0.1 地址:192.168.40.139 sql2000 的数据 ...
- Oracle 连接 Visual Studio 的工具
Oracle 连接 Visual Studio 的工具 ① ② ③
随机推荐
- HTTP 基础知识
HTTP是一种协议.HTTP使用流程,一般情况下, 第一:由HTTP客户端发出请求,创建端口. 第二:HTTP服务器在端口监听客户端的请求. 第三:一旦收到请求,HTTP服务器向客户端返回状态和内容. ...
- MVC CheckBoxList的实现
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
- JS 循环给li绑定参数不同的点击事
以下内容纯属个人理解,不正确的地方还请大神留言,不胜感激! 源代码:(按个人方式选用一种即可) <ul> <li>1</li> <li>2</li ...
- 使用powershell批量添加Keil和IAR的头文件路径
在Keil和IAR的工程中,为了使文件结构清晰,通常会设置很多的子文件夹,然后将头文件和源文件放在不同的子文件夹中,这样就需要手动添加这些头文件夹的路径.当工程结构非常复杂时,文件夹的数量就非常多,特 ...
- AngularJS 依赖注入
依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该 ...
- HDU 1859
#include <iostream> #include <cstdio> #include <algorithm> #include <vector> ...
- Elasticsearch Configuration 中文版
##################### Elasticsearch Configuration Example ##################### # This file contains ...
- GOPATH 使用总结
GOPATH 环境变量用于指定这样一些目录:除 $GOROOT 之外的包含 Go 项目源代码和二进制文件的目录.go install 和 go 工具会用到 GOPATH:作为编译后二进制的存放目的地 ...
- 使用mysqlslap对mysql进行压测,观察Azure虚拟机cpu使用率
一直想做这个测试,原因很简单,很多人一直比较怀疑Azure的虚拟机性能,说相同的配置凭啥比阿里的虚拟机贵那么多,其实,我自己以前也怀疑过,但是接触Azure的几个月,确实发现Azure的虚拟机性能真的 ...
- C#进阶目录
一.Sql语句的性能优化 二.Quartz.NET的介绍 三.Log4.Net的介绍 四.Topshelf的介绍 五.Git的使用 六.IEnumerable接口迭代原理 七.Lambada表达式的演 ...