oracle连接测试很久,oracle技术之提高短连接性能方法测试

创建测试脚本

通过在三个会话中同时执行test_login.sh脚本,模拟当数据库多个短连接情况性能

[oracle@xifenfei tmp]$ more test_login.sh

#!/bin/bash

echo "start login database `date`*********" >>/tmp/test_1.log

e=2000

for((i=1;i<=$e;i=i+1))

do

/tmp/login_oracle.sh

done

echo "end login database `date`*********" >>/tmp/test_1.log

[oracle@xifenfei tmp]$ more login_oracle.sh

#!/bin/bash

sqlplus chf/xifenfei@ORA11G_P

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

exit

XFF

--ORA11G_P根据不同的测试情景指定不同名称

情况1:一个监听情况下

start login database Tue May  1 18:03:32 CST 2012*********

start login database Tue May  1 18:03:35 CST 2012*********

start login database Tue May  1 18:03:37 CST 2012*********

end login database Tue May  1 18:08:20 CST 2012*********

end login database Tue May  1 18:08:25 CST 2012*********

end login database Tue May  1 18:08:26 CST 2012*********

--计算2000个会话登录/查询/推出时间

4:48

4:40

4:49

情况2:三个监听,客户端配置tns负载均衡

--监听配置

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = ora11g)

(ORACLE_HOME = /u01/oracle/oracle/product/11.2.0/db_1)

(SID_NAME = ora11g)

)

)

ADR_BASE_LISTENER = /u01/oracle

LISTENER1 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1522))

)

)

SID_LIST_LISTENER1 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = ora11g)

(ORACLE_HOME = /u01/oracle/oracle/product/11.2.0/db_1)

(SID_NAME = ora11g)

)

)

ADR_BASE_LISTENER1 = /u01/oracle

LISTENER2 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1523))

)

)

SID_LIST_LISTENER2 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = ora11g)

(ORACLE_HOME = /u01/oracle/oracle/product/11.2.0/db_1)

(SID_NAME = ora11g)

)

)

ADR_BASE_LISTENER2 = /u01/oracle

--tns配置

ORA11G_M =

(DESCRIPTION =

(LOAD_BALANCE=ON)

(FAILOVER=ON)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1522))

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1523))

(LOAD_BALANCE = yes)

)

(CONNECT_DATA =

(SERVER=DEDICATED)

(SERVICE_NAME = ora11g)

)

)

--测试结果

start login database Tue May  1 17:51:45 CST 2012*********

start login database Tue May  1 17:51:49 CST 2012*********

start login database Tue May  1 17:51:51 CST 2012*********

end login database Tue May  1 17:55:58 CST 2012*********

end login database Tue May  1 17:56:06 CST 2012*********

end login database Tue May  1 17:56:09 CST 2012*********

--计算2000个会话登录/查询/推出时间

4:13

4:17

4:18

情况2:使用常驻连接池DRCP(11g新特性)

--启动默认DRCP

SQL> exec dbms_connection_pool.start_pool();

PL/SQL procedure successfully completed.

--tns配置

ORA11G_P =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER=POOLED)  --注意

(SERVICE_NAME = ora11g)

)

)

--执行结果

start login database Tue May  1 18:19:58 CST 2012*********

start login database Tue May  1 18:20:01 CST 2012*********

start login database Tue May  1 18:20:03 CST 2012*********

end login database Tue May  1 18:23:16 CST 2012*********

end login database Tue May  1 18:23:19 CST 2012*********

end login database Tue May  1 18:23:21 CST 2012*********

--计算2000个会话登录/查询/推出时间

3:16

3:18

3:19

总结

如果在数据库短连接过程中发现监听是瓶颈的时候,可以考虑使用多个监听+tns 负载均衡,从一定程度上缓解监听瓶颈.如果是11g数据库可以考虑使用其心功能DRCP,从而很大程度上提高短连接过程中数据库的效率.因为DRCP还属于11g的新功能稳定性不知道如何?使用该功能前,请一定要做好相关测试工作.如有可能还是建议从应用层面尽可能的使用长连接,提高数据库会话效率.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值