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 条评论
登录 后参与评论

相关文章

来自专栏Java呓语

第13.1.1章 语法解释ALTER DATABASE

ALTER DATABASE 允许修改数据库的特征,所有关于数据库的特征都存储在db.opt文件中。你必须先具备该数据库的ALTER特权,才能完成对数据库的AL...

721
来自专栏IT笔记

Hibernate: Encountered a duplicated sql alias [] during auto-discovery of a native-sq

Hibernate: Encountered a duplicated sql alias [] during auto-discovery of a nati...

3667
来自专栏数据分析

[数据库基础]——编码标准之结构

数据库是由若干表构成,表是由数据行构成,数据行由若干列组成。由于数据库这样的结构,这就要求我们在构成数据库表时,需要注意一些问题。现在提出一些注意的问题。 1....

3175
来自专栏MYSQL轻松学

MYSQL常用SQL汇总

1、查看当前应用连接,连接数突增排查 select user,SUBSTRING_INDEX(host,':',1) as ip , count(*) as c...

3536
来自专栏Netkiller

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

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

3445
来自专栏WindCoder

MySQL中INSERT INTO SELECT的应用

这种方法常用在目标表已经存在数据库中.需要从源表把数据插入到目标表的情况.如果目标表和源表的列相同,就不必列出数据列了.(未完待续,另参考资料中重复项太多,暂且...

3061
来自专栏PhpZendo

使用 MySQL Scheduler 和 Event 周期性创建数据表

使用 MySQL Scheduler 和 Event 周期性创建数据表,下面提供的是按月建表计划任务及事件通过 ON SCHEDULE EVERY 1 MINU...

1632
来自专栏pangguoming

oracle的行级触发器使用

行级触发器: 当触发器被触发时,要使用被插入、更新或删除的记录中的列值,有时要使用操作前、后列的值. :NEW 修饰符访问操作完成后列的值 :OLD 修饰符访问...

3145
来自专栏吴柯的运维笔记

MySQL索引类型及用法

2017年9月13日 12:55 索引类型: ? index索引: ? 在已有表中创建index索引: create index 索引名 on 表名(字段名)...

2958
来自专栏奇梦博客

Xiuno BBS 4.0 表结构 XiunoBBS

921

扫码关注云+社区