连接(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连接与会话的更多相关文章

  1. Oracle 连接、会话数的查看,修改

    http://blog.csdn.net/xiaoyao6650/article/details/4027041 查看processes #当前的连接数 select count(*) from v$ ...

  2. 理解oracle中连接和会话

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp44 理解oracle中连接和会话 1.  概念不同:概念不同: 连接是指物 ...

  3. oracle连接-会话-进程

    ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;CREATE PROFILE kyc_pro LIMIT IDLE_TIME 2;alter user kyc_acc pro ...

  4. ORACLE定期清理INACTIVE会话

      ORACLE数据库会话有ACTIVE.INACTIVE.KILLED. CACHED.SNIPED五种状态.INACTIVE状态的会话表示此会话处于非活动.空闲.等待状态.例如PL/SQL Dev ...

  5. 【转】ORACLE定期清理INACTIVE会话

    源地址:http://www.cnblogs.com/kerrycode/p/3636992.html ORACLE数据库会话有ACTIVE.INACTIVE.KILLED. CACHED.SNIPE ...

  6. 数据库的连接、会话与SQLite

    通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context).这个上下文是一段位于服务器端的内存:记录了本次连接的所有相关状态和运行数据. 连接(Connecti ...

  7. Oracle连接odbc数据源

    Oracle连接odbc数据源 说明 oracle连接ODBC数据源有两种方式,hsodbc和dg4odbc,简单说dg4odbc是hsodbc的升级.两种连接方法大致一样,现将连接步骤说明如下: 检 ...

  8. ORACLE连接SQLSERVER

    一.实验(实验成功) 1.实验目标:ORACLE连接SQLSERVER以及查询数据 2.搭建的环境: oracle 9i 9.0.2.0.1 地址:192.168.40.139 sql2000 的数据 ...

  9. Oracle 连接 Visual Studio 的工具

    Oracle 连接 Visual Studio 的工具 ① ② ③

随机推荐

  1. JS中SetTimeOut和SetInterval方法的区别?

    1.setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭.由 ...

  2. SQLSERVER如何使用递增排序的GUID做主键

    场景: 产品表数据量较大想用Guid做表的主键,并在此字段上建立聚簇索引. 因为Guid是随机生成的,生成的值大小是不确定的,每次生成的数可能很大,也可能很小.这样会影响插入的效率 1.NEWSEQU ...

  3. [Java] JSP笔记 - 自定义标签

    自定义标签的创建步骤: 自定义标签的四大功能: 自定义标签的类结构: 在 1.0 中呢, 可以将 <body-content> 的值设置为 JSP, 2.0中则不允许在自定义标签体中出现j ...

  4. uboot 第三天学习

    make jCPU_NUM 以CPU_NUM数量同时进行编译CPU_NUM = 当前PC的处理器数量*处理器的核心数 从上电开始1.系统上电,执行固化在IROM中的代码,目的初始化基本的系统功能,已经 ...

  5. iOS小知识:计算字符串长度(如果有表情,表情的长度为1)

    在做项目的时候,textField能够输入表情,但是iOS的表情是占两个字符的,再计算字符串长度的时候就和想象的不一样了,所以用了次方法会将表情的长度转成1,最后得到的字符串的长度就是能看到的实际的长 ...

  6. [转]undo log与redo log原理分析

    数据库通常借助日志来实现事务,常见的有undo log.redo log,undo/redo log都能保证事务特性,这里主要是原子性和持久性,即事务相关的操作,要么全做,要么不做,并且修改的数据能得 ...

  7. MySQL 优化数据库对象

    一.考虑是用 procedure analyse() 函数对当前应用的表进行分析.字段类型是否可优化. 二.通过拆分提高表的访问效率. (A) 针对MyISAM表,有两种拆分方法: 垂直拆分:主码和某 ...

  8. 修改git remote url

    $ ssh -v wangz@gitlab.alibaxx-inc.com $ git remote ali set-url git@gitlab.alibaxx-inc.com:youk-aaa/x ...

  9. linux之netstat命令

    netstat用于显示各种网络相关的信息,如网络连接,路由表接口状态(interface statistics), masquerade连接,多播成员(Multicast Memberships)等等 ...

  10. FWT与High dick(划掉改成Dimensional) Fourier Transform

    我们大家都知道xor卷积有个很好的做法:FWT.FWT的变换形式是很好看的 // 说明一下Vector可以向量化运算,也可以当做数组来slice与concat Vector tf(A,2^n){ Ve ...