sqlplus连接数的测试

最近测试库上会有很多的连接的问题,很多都是jdbc连接的问题,在此基础上我测试了一下sqlplus连接的情况, 根据sqlplus的命令,有conn,disc,disc会断开连接。 我想如果不停的conn 而不disc,连接数会不会爆。 按照这个思路写了下列的脚本,大体如下。

sqlplus TEST1/TEST1@test <<EOF
select sid,serial#, count(*)from v\$session where username='TEST1' group by sid,serial#;
select count(*)from v\$session;
conn TESTO1/TESTO1@test
select sid,serial#, count(*)from v\$session where username='TESTO1' group by sid,serial#;
select count(*)from v\$session;

conn TEST1/TEST1@test
select sid,serial#, count(*)from v\$session where username='TEST1' group by sid,serial#;
select count(*)from v\$session;
conn TESTO1/TESTO1@test
select sid,serial#, count(*)from v\$session where username='TESTO1' group by sid,serial#;
select count(*)from v\$session;

...... 可以复制很多如上的部分。 但是测试发现,session书依然没有变化。好像是自动关闭了一样。 把间隔时间加大,加入sleep,

sqlplus TEST1/TEST1@test <<EOF
select sid,serial#, count(*)from v\$session where username='TEST1' group by sid,serial#;
select count(*)from v\$session;
!sleep 2
conn TESTO1/TESTO1@test
select sid,serial#, count(*)from v\$session where username='TESTO1' group by sid,serial#;
select count(*)from v\$session;
!sleep 2
!sleep 5


conn TEST1/TEST1@test
select sid,serial#, count(*)from v\$session where username='TEST1' group by sid,serial#;
select count(*)from v\$session;
!sleep 2
conn TESTO1/TESTO1@test
select sid,serial#, count(*)from v\$session where username='TESTO1' group by sid,serial#;
select count(*)from v\$session;
!sleep 2
!sleep 5
.....

结果如下所示,sid对应的serial#会不停的增长。但是上一个session会自动断掉。session总数也不变,看来sqlplus会自动disc。看来性能很好。

SQL> Connected.
SQL> 
       SID    SERIAL#   COUNT(*)
---------- ---------- ----------
      2941       9786          1
      2955      51931          1
SQL> 
  COUNT(*)
----------
        44
SQL> 
SQL> Connected.
SQL> 
       SID    SERIAL#   COUNT(*)
---------- ---------- ----------
      2955      51933          1
SQL> 
  COUNT(*)
----------
        44
SQL> 
SQL> 
SQL> SQL> Connected.
SQL> 
       SID    SERIAL#   COUNT(*)
---------- ---------- ----------
      2941       9786          1
      2955      51935          1
SQL> 
  COUNT(*)
----------
        44
SQL> 
SQL> Connected.
SQL> 
       SID    SERIAL#   COUNT(*)
---------- ---------- ----------
      2955      51937          1
SQL> 
  COUNT(*)
----------
        44

SQL> 
SQL> 
SQL> SQL> Connected.
SQL> 
       SID    SERIAL#   COUNT(*)
---------- ---------- ----------
      2941       9786          1
      2955      51939          1
SQL> 
  COUNT(*)
----------
        44
SQL> 
SQL> Connected.
SQL> 
       SID    SERIAL#   COUNT(*)
---------- ---------- ----------
      2955      51941          1

SQL> 
  COUNT(*)
----------
        44



原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-03-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

关于dual表的破坏性测试(r3笔记第60天)

关于dual表的破坏性测试,既然是破坏性测试,就需要确定这个测试仅限于测试或者个人学习所用,可能有些sql看似极为简单,但是一旦运行就会导致整个业务系统崩溃。 ...

35613
来自专栏跟着阿笨一起玩NET

不允许 ASSIGNMENT 语句中包含 FOR XML 子句。

441
来自专栏更流畅、简洁的软件开发方式

联动设置

643
来自专栏Netkiller

数据库安全·用户/角色认证

以下节选择《Netkiller Architect 手札》 地址 http://www.netkiller.cn/architect/ 接下来几周的话题是数据库...

3375
来自专栏沃趣科技

Oracle 12c系列(十) | 12c中的Recovering Tables and Table Partitions

在Oracle12c之前的版本中,rman进行数据恢复时只能进行database/tablespace/datafile/block四种级别的恢复,如果误操作删...

992
来自专栏Netkiller

Spring Data 最佳实践

摘要: ORM的出现解决了程序猿学习数据库学历成本,也加快了开发的速度。程序猿无需再学习数据库定义语言DDL以及数据库客户端,也无需关注建表这些繁琐的工作,同时...

3657
来自专栏杨建荣的学习笔记

不经意发现的dba_objects和dba_tables中的细节(r7笔记第56天)

今天有一个同学问我一个问题,因为白天比较忙也没有在意,在下班后坐地铁的时候抽空看了这个问题,感觉还是蛮有意思的。但是当时也没有任何答案,就准备自己回去好好实验一...

3373
来自专栏乐沙弥的世界

Oracle 基于 RMAN 的不完全恢复(incomplete recovery by RMAN)

      Oracle 数据库可以实现数据库不完全恢复与完全恢复。完全恢复是将数据库恢复到最新时刻,也就是无损恢复,保证数据库无丢失的恢复。而不完全恢复则是根...

611
来自专栏杨建荣的学习笔记

一条sql语句“导致”的数据库宕机问题及分析 (38天)

最近测试环境需要做一些变更,把测试环境切分成两套环境,存储空间也需要压缩压缩和整理。 unix组的人已经开始做空间划分了,然后我们需要在此基础上重建一套环境。 ...

3294
来自专栏别先生

mysql如何添加一个表的外键

1:创建一个父表,主键作为子表的外键: 1 create table province( 2 pId int primary key auto_incr...

1857

扫码关注云+社区