`

XA和DBLink性能方面的测试

 
阅读更多
项目组存在oracle跨库事物需求,考虑了两个方案,XA和DBLink。
对XA和DBLink性能方面的测试如下:(调研者:曹旭东)

1. 测试目标
力求发现XA和DBLink方式哪个更快

2. 观测数据
时间:执行插入操作所消耗的时间
系统:oracle在这两中情况下的性能报告

3. 测试方法
先用1k条数据对虚拟机进行预热,然后执行数据插入程序。

单一请求:
    分别使用XA和DBLink,插入100k条数据,统计出插入100k条数据所需要的时间。在程序中添加计算时间的代码。

并发请求:
    使用ab,模拟1000个并发,共请求100000次,统计出所需要的时间,ab可以给出统计报告。
   
4. 可能出现的偏差
(1) 使用DBLink方式,会将一部分计算操作转移到服务器上,而服务器的计算性能强于我本机的性能
(2) 测试过程中,我本机电脑运行的其他程序会对测试结果会产生影响
(3) 在对性能指标进行监控时,监控程序也会占用本机资源,影响结果

5. 测试结果
Tomcat启动参数
    -Xloggc:E:\Temp\guzz\dbaccess.log -XX:+PrintGCDetails -XX:CompileThreshold=1 -server -Xmx512m -Xms512m

XA单一请求
    测试开始时间  2012-02-03 12:11
    测试结束时间  2012-02-03 15:13
    程序运行时间  程序运行总共花费10797607毫秒,约2.9小时。
    oracle情况

XA并发请求
    测试开始时间  2012-02-03 15:19
    测试结束时间  2012-02-03 16:14
    程序运行时间  程序运行总共花费3281.928秒,约0.9小时
    并发请求统计  参见ab的日志文件
    oracle情况

DBLink单一请求
    测试开始时间  2012-02-04 13:16
    测试结束时间  2012-02-04 16:05
    程序运行时间  程序运行总共花费9847839毫秒,约2.7小时
    oracle情况

DBLink并发请求
    测试开始时间  2012-02-03 17:08
    测试结束时间  2012-02-03 18:24
    程序运行时间  程序运行总共花费4566.270秒,约1.3小时
    并发请求统计  参见ab的日志文件
    oracle情况

6 结论
    在对单一请求的重复测试中DBLink的性能好于XA,但需要考虑到DBLink方式将一部分计算交由DB服务器完成,
一方面DB服务器的性能强于我本机电脑,另一方面,它会增加DB服务器的负担。在并发状态下测试表明,XA的性能
强于DBLink,并且DBLink出现的错误多余XA。



ab-DBLinkConcurrent.log

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)


Server Software:        Apache-Coyote/1.1
Server Hostname:        localhost
Server Port:            8080

Document Path:          /jifen/demo/dblinkCommit.action
Document Length:        11 bytes

Concurrency Level:      1000
Time taken for tests:   4566.270 seconds
Complete requests:      100000
Failed requests:        43654
   (Connect: 0, Receive: 0, Length: 43654, Exceptions: 0)
Write errors:           0
Non-2xx responses:      43654
Total transferred:      591060690 bytes
HTML transferred:       577201838 bytes
Requests per second:    21.90 [#/sec] (mean)
Time per request:       45662.705 [ms] (mean)
Time per request:       45.663 [ms] (mean, across all concurrent requests)
Transfer rate:          126.41 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   4.6      0     484
Processing:   125 45506 18001.1  45011  109541
Waiting:      125 45498 17999.9  44996  109541
Total:        125 45507 18001.1  45011  109541

Percentage of the requests served within a certain time (ms)
  50%  45011
  66%  53405
  75%  58320
  80%  61097
  90%  67509
  95%  73735
  98%  82019
  99%  87901
100%  109541 (longest request)



ab-XAConcurrent.log
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)


Server Software:        Apache-Coyote/1.1
Server Hostname:        localhost
Server Port:            8080

Document Path:          /jifen/demo/xaCommit.action?cn=123
Document Length:        11 bytes

Concurrency Level:      1000
Time taken for tests:   3281.928 seconds
Complete requests:      100000
Failed requests:        5307
   (Connect: 0, Receive: 0, Length: 5307, Exceptions: 0)
Write errors:           0
Non-2xx responses:      5307
Total transferred:      83513135 bytes
HTML transferred:       71111469 bytes
Requests per second:    30.47 [#/sec] (mean)
Time per request:       32819.284 [ms] (mean)
Time per request:       32.819 [ms] (mean, across all concurrent requests)
Transfer rate:          24.85 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   5.0      0     625
Processing:   308 32716 13821.5  31547  100752
Waiting:      308 32707 13822.5  31533  100752
Total:        321 32717 13821.5  31548  100752

Percentage of the requests served within a certain time (ms)
  50%  31548
  66%  37140
  75%  40966
  80%  43277
  90%  51055
  95%  57912
  98%  65314
  99%  72686
100%  100752 (longest request)

0
0
分享到:
评论

相关推荐

    dblink dblink dblink dblink dblink dblink

    dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink

    DBLINk

    标题与描述均提到了"DBLINk",这是一个在数据库领域中相对专业且特定的概念,尤其是在Oracle数据库管理系统中。...然而,合理设计和管理DBLINK,同时关注其潜在的安全性和性能问题,是确保其优势得到充分发挥的关键。

    Oracle利用job和dblink高级数据库同步技术

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在数据管理、事务处理和高可用性方面具有出色的能力。本文将深入探讨如何利用Oracle的Job和DBLink功能进行高级数据库同步技术,以确保数据的一致性和实时...

    DBLink的创建和使用

    DBLink使得数据交互和分布式查询变得简单。在本文中,我们将深入探讨DBLink的创建和使用方法。 首先,创建DBLink的先决条件是本地数据库用户必须拥有相应的权限。有三种与DBLink相关的权限: 1. CREATE DATABASE ...

    Oracle数据库 Synonym和DBLink

    Oracle 数据库 Synonym 和 DBLink Oracle 数据库中有两个重要的概念:同义词(Synonym)和数据库连接(DBLink)。这两个概念都是为了方便数据库的使用和管理而设计的。 同义词(Synonym) 同义词是 Oracle 数据库...

    oracle通过dblink链接 mysql和mssql例子

    下面是Oracle通过DBLink连接MySQL和MSSQL的步骤: ### 连接MySQL: 1. 准备MySQL环境: - 确保MySQL服务器地址、端口、数据库名称、用户名和密码等信息已知。 - 确保所用账号可以连接到MySQL服务器,并拥有全局...

    oracle通过DBlink连接mysql搭建过程

    使用 DBlink 连接 Oracle ...使用 DBlink 连接 Oracle 和 MySQL 数据库需要逐步进行配置和测试,需要读者细心和耐心。但是,使用 DBlink 可以实现数据的交换和共享,提高数据的可用性和可靠性,提高业务的效率和效果。

    oracle dblink 创建过程

    通过创建DBLink,可以在两个不同的Oracle数据库之间建立连接,实现数据的共享和交换。结合Oracle快照技术,可以有效地实现本地数据库与远程数据库之间的数据同步。此外,通过设置适当的刷新策略和使用触发器,可以...

    DBlink的应用 DBlink的应用

    ### DBlink的应用 #### 一、DBlink简介与配置 DBLink是Oracle数据库中的一个非常重要的特性,主要用于在两个或...通过本文的介绍,希望能帮助读者更好地理解和应用Oracle DBLink技术,提升数据库管理的效率和灵活性。

    通过Oracle的透明网关和dblink直接取sqlserver表中的数据

    "通过Oracle的透明网关和DBLink直接取SQL Server表中的数据" ...通过本文,可以了解到使用Oracle的透明网关和DBLink从SQL Server数据库中提取数据的整个过程,包括安装、配置、连接和解决问题等方面的知识点。

    Oracle DBLink建立连接

    - **跨库查询**:利用DBLink可以轻松地实现跨数据库的数据查询和处理,这对于数据分析和报表生成非常有用。 #### 知识点五:DBLink的安全性考虑 - **权限管理**:由于DBLink涉及到不同数据库之间的数据访问,因此...

    dblink实战

    dblink可以分为公有dblink和私有dblink两类,公有dblink使用public修饰关键字,在create和drop的时候都需要使用public关键字。公有dblink对所有人开放,在该dblink之上创建的同义词也会随之对所有人开放。私有dblink...

    dblink简介

    ### Oracle DBLink 简介及使用方法 #### 一、DBLink概念 DBLink(Database Link),即数据库链接,是一种允许从一个Oracle数据库访问...然而,考虑到DBLink可能带来的性能问题和资源消耗,建议在必要时才使用此功能。

    Oracle之dblink的配置

    Oracle之dblink的配置 Oracle之dblink的配置 Oracle之dblink的配置 Oracle之dblink的配置

    oracle 存储过程 函数 dblink

    ### Oracle存储过程、函数与DBLink详解 ...存储过程提供了强大的数据库处理能力,而DBLink则使得不同数据库实例之间的交互变得更加方便和高效。掌握这些技术对于提高数据库应用程序的性能和可维护性具有重要意义。

    dblink+同义词

    这极大地增强了跨数据库操作的能力,特别是在分布式系统中,dblink成为了连接不同数据库、实现数据共享和交换的关键工具。 ### 同义词 同义词是数据库对象的一种类型,它作为对象名的别名存在,用于简化或隐藏实际...

    dblink和同义词的建立

    dblink和同义词的建立 很详细的说明 值得你下载

    建立DBLINK连接串

    在IT行业中,数据库链接(DBLINK)是一种非常实用的功能,它允许用户在一个数据库实例中访问另一个数据库实例的数据,而无需直接连接到目标...通过正确配置和使用DBLINK,可以极大地提高数据库系统的灵活性和效率。

    oracle建立dblink步骤

    - 通过以下命令测试DBLink是否成功建立: ```sql SELECT * FROM DUAL@SIDBJ.US.ORACLE.COM; ``` - 如果返回结果包含`X`,则表示连接成功。 5. **查看已建立的DBLink** - 可以通过以下命令查看当前数据库中已...

    在oracle下创建dblink

    1. **安全性考虑**:由于DBLink涉及到跨数据库的操作,因此需要格外注意安全性和访问控制。 2. **性能问题**:跨数据库查询可能会导致性能下降,特别是在网络延迟较高的情况下。因此,在设计系统架构时应充分考虑这...

Global site tag (gtag.js) - Google Analytics