oracle网络服务之beq协议和SDU优化(性能提升可达30%)

oracle网络服务之beq协议和SDU优化(性能提升可达30%)

12.3.1  BEQ协议

如果Oracle数据库服务端和客户端在同一台机器上,可以使用BEQ连接,BEQ连接采用进程间直接通信,不需要走网络监听,对于大数据量的导入导出来说性能更高。BEQ协议可以通过在tnsnames.ora 配置文件的TNS连接串中将协议声明为BEQ来指定,如下所示:

orclbeq =

  (DESCRIPTION =

   (ADDRESS =

      (PROTOCOL = BEQ)

      (PROGRAM = /u01/app/oracle/product/12.2/db_home1/bin/oracle)

      (ARGV0 = orclpdb)

      (ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))')

      # (ENVS = 'ORACLE_HOME=/u01/app/oracle/product/12.2/db_home1,ORACLE_SID=ora12c')

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orclpdb)

    )

  )

下面我们来看一下采用BEQ和网络协议的性能差别。

使用TCP/IP协议:

[oracle@oel-12c oradata]$ expdp hr/hr@localhost:1521/orclpdb tables=\(big_table_tmp\) directory=dmp_dir dumpfile=expdat_nocond2.dmp exclude=statistics

 

连接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

启动 "HR"."SYS_EXPORT_TABLE_01":  hr/********@localhost:1521/orclpdb tables=(big_table_tmp) directory=dmp_dir dumpfile=expdat_nocond2.dmp exclude=statistics

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

处理对象类型 TABLE_EXPORT/TABLE/TABLE

处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX

. . 导出了 "HR"."BIG_TABLE_TMP"                        290.8 MB 1000000 行

已成功加载/卸载了主表 "HR"."SYS_EXPORT_TABLE_01"

******************************************************************************

HR.SYS_EXPORT_TABLE_01 的转储文件集为:

  /oradata/ORA11G/dmpdir/expdat_nocond2.dmp

作业 "HR"."SYS_EXPORT_TABLE_01" 已于 星期日 3月 17 15:32:30 2019 elapsed 0 00:00:30 成功完成

使用BEQ协议:

[oracle@oel-12c oradata]$ expdp hr/hr@orclbeq tables=\(big_table_tmp\) directory=dmp_dir dumpfile=expdat_nocond1.dmp exclude=statistics

 

连接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

启动 "HR"."SYS_EXPORT_TABLE_01":  hr/********@orclbeq tables=(big_table_tmp) directory=dmp_dir dumpfile=expdat_nocond1.dmp exclude=statistics

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

处理对象类型 TABLE_EXPORT/TABLE/TABLE

处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX

. . 导出了 "HR"."BIG_TABLE_TMP"                        290.8 MB 1000000 行

已成功加载/卸载了主表 "HR"."SYS_EXPORT_TABLE_01"

******************************************************************************

HR.SYS_EXPORT_TABLE_01 的转储文件集为:

  /oradata/ORA11G/dmpdir/expdat_nocond1.dmp

作业 "HR"."SYS_EXPORT_TABLE_01" 已于 星期日 3月 17 15:33:36 2019 elapsed 0 00:00:16 成功完成

从上可知,使用TCP/IP协议进行导出的时间比BEQ协议多了近1倍。

除了在Oracle自带的工具中可以使用BEQ协议外,JDBC OCI驱动也能够使用BEQ协议进行连接,如下所示:

System.setProperty("oracle.net.tns_admin","$ORACLE_HOME\network\admin");

String dbURL = "jdbc:oracle:oci:@orclbeq";

Connection connection = DriverManager.getConnection(dbURL, "hr", "hr");

相比TCP/IP协议,在JDBC中使用BEQ协议导出时速度也更快。

posted @   zhjh256  阅读(1015)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示