`
haihai
  • 浏览: 72325 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

数据库事务隔离的测试

阅读更多
今天没什么事情,测试了一下各个数据库对事务隔离级别的支持情况,结果Mysql5支持是最全的,语意也和sql标准定义的相当,db2的9.1和sql server2000,虽然都支持sql标准定义的四种隔离级别,不过语意相差很大,性能很不好(也有可能是我对他们的锁的级别没有弄好,而导致事务之间发生等待),事务之间会发生阻塞,Oracle9i只是支持其中的两个,语意也和sql标准定义的相当,性能很好,我觉得就这两个非常的实用,基本已经够了,Sybase12.5版本,基本和sql server2000差不多。现在想想,怪不得Oracle在企业数据库中的份额那么的大了。
分享到:
评论
4 楼 ahuaxuan 2007-02-12  
乐观锁不是用来解决串行的,是用来解决不可重复读的,术语用错地方了,悲观锁和乐观锁都是用来解决不可重复读的,只不过乐观锁用代码控制(代码多,性能好),悲观锁用数据库来控制(代码少,性能差),悲观锁(for update)是用来锁定某一行,不是整张表
3 楼 LucasLee 2007-02-12  
抛出异常的爱 写道
数据拿上来就给精华
PS:如果有你的测试方法让我们也试验一下,是否可以重现你的作法.


同意。
楼主给出的描述太简略了。很容易误导。碰巧我也做过少量类似的试验,所以跟你的结论不同。
特别的,你怎么觉得Oracle对事务隔离的性能就很好了?还是随便猜的?

Oracle的确只支持Read-committed和Serializable两种级别的Isolation,Read-uncommitted和Repeatable-read是不支持的。
SqlServer2000支持所有四种级别。
据我的实验看来,Oracle对Serializable级别是使用"乐观锁"(不知道有没有正确使用这个术语)的方式,就是并不锁定表,但如果有违反Serializable的数据更改,则抛出异常,你只能放弃或重做一遍;
而SqlServer2000,对Serializable是使用“悲观锁”,就是物理的锁定表,即使是select语句,事务结束前,不能更改被锁定的资源。
2 楼 抛出异常的爱 2007-02-12  
数据拿上来就给精华
PS:如果有你的测试方法让我们也试验一下,是否可以重现你的作法.
1 楼 haihai 2007-02-12  
明天在看看sql server2005是个什么样子

相关推荐

    数据库事务与隔离技术

    数据库事务是确保数据库操作一致性的重要机制,它定义了一组数据库操作的边界,这些操作要么全部执行,要么全部不执行。事务通常包含四个基本属性,即原子性(Atomicity)、一致性(Consistency)、隔离性...

    mysql数据库事务隔离级别借鉴.pdf

    以下是对MySQL数据库事务隔离级别的详细解释。 1. **丢失更新**:在并发环境下,一个事务的更新可能被另一个事务的更新覆盖,导致前一个事务的更改丢失。 2. **脏读**:一个事务读取到了另一个事务还未提交的数据...

    mysql数据库事务隔离级别[参照].pdf

    数据库事务是确保数据库操作一致性的重要机制,特别是在并发环境中。事务隔离级别是数据库系统用来解决并发问题,保证数据正确性的一种策略。MySQL数据库提供了四种不同的事务隔离级别,它们分别是读未提交(Read ...

    MySQL的四种事务隔离级别

    为了在不同隔离级别下测试和观察事务行为,文中还提供了如何使用SQL命令来设置和查询当前事务的隔离级别的方法,例如使用SET SESSION TRANSACTION ISOLATION LEVEL命令来设置当前会话的事务隔离级别,并使用select @...

    MySQL数据库事务隔离级别详解

    MySQL数据库的事务隔离级别是数据库管理系统中用于控制事务并发处理时如何查看和修改数据的一系列标准。这些级别有助于防止在多事务环境中出现诸如脏读、不可重复读和幻读等并发问题。下面是四个不同的事务隔离级别...

    sql数据库内部测试题

    4. 数据库事务(Transaction): - 了解ACID属性(原子性、一致性、隔离性、持久性),理解事务的开始、提交和回滚操作。 5. 数据库安全性: - 用户权限管理:创建用户、角色,分配权限(GRANT、REVOKE)。 - ...

    数据库单元测试总结~~单元测试

    1. **隔离测试**:确保测试的是单个组件,不受其他组件的影响。可以使用数据隔离技术,如事务,来确保测试环境的一致性。 2. **明确预期**:定义清晰的预期结果,通常在测试用例中设定输入参数和期望的输出结果。 3....

    数据库测试

    4. **事务处理**:测试数据库事务的ACID属性(原子性、一致性、隔离性和持久性)。确保事务在异常情况下能正确回滚,或者在成功完成后持久化更改。 5. **恢复机制**:测试数据库的备份和恢复功能,确保在系统崩溃后...

    无废话Android 系列教程35 [Android下的数据库SQLite事务概念及使用&&测试]

    首先,我们需要理解什么是数据库事务。在关系型数据库中,事务是一组数据库操作,这些操作被视为一个单元,要么全部执行,要么全部不执行。事务具有四大特性,通常称为ACID属性: 1. 原子性(Atomicity):事务中的...

    提高数据库事务处理性能的中间件设计.pdf

    通过这些方法,中间件能够在不改变数据库核心架构的情况下,有效地提升TPC-C测试中的tpmC值,提高数据库事务处理性能。 总之,提高数据库事务处理性能的中间件设计是解决数据库性能瓶颈的关键。通过优化调度策略,...

    msyql锁、事务隔离级别各种场景验证测试.rar

    这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了 事务隔离机制、锁机制、MVCC多版本并发控制隔离机制 ,用一整套机制来 解决多事务并发问题。 事务及其ACID属性 事务是由一组...

    西南石油大学《数据库基础》测试题(含答案).pdf

    7. 数据库事务和并发控制:解释数据库事务的概念,包括ACID属性(原子性、一致性、隔离性和持久性),以及并发控制机制,如锁、时间戳和乐观并发控制等。 8. 数据库技术的最新进展:介绍数据库领域的最新技术,包括...

    db数据库写入性能测试

    1. **并发性能**:测试数据库在多用户同时写入时的处理能力,考察其是否能有效管理并行事务,避免阻塞或死锁。 2. **吞吐量**:指单位时间内数据库能够处理的写入请求的数量,这是衡量数据库性能的重要指标。 3. *...

    MYSQL官方最新测试数据库 test_db.zip

    在本场景中,"MYSQL官方最新测试数据库 test_db.zip" 是一个包含了MySQL官方提供的用于测试目的的数据库文件。这个数据库可能包含了各种示例表、数据和预设的查询,以帮助开发者和管理员熟悉MySQL的功能和性能。 ...

    spring 事务传播与隔离级别DEMO

    本DEMO主要探讨的是Spring事务的传播行为和隔离级别,这些概念对于理解和优化数据库操作至关重要。让我们深入理解这些概念及其实际应用。 首先,我们来谈谈事务的传播行为。在Spring中,当一个方法被另一个具有事务...

    《分布式数据库技术金融应用规范》的技术架构及分布式事务核心功能的解读揭秘v1.0.pptx

    7、分布式事务隔离级别的功能效果及测试验证方法 8、分布式事务原子性的功能效果及测试验证方法 9、分布式事务读一致性的功能效果及测试验证方法 10、分布式事务写一致性的功能效果及测试验证方法 11、分布式锁...

    MySQL数据库在自动测试系统中的应用研究.pdf

    ### MySQL数据库在自动测试系统中的应用研究 #### 一、引言 自动测试系统作为一种能够自动执行测试案例并收集测试结果的技术解决方案,在软件开发、硬件验证等领域扮演着至关重要的角色。MySQL作为一款开源的关系...

    数据库课程设计:组织MBTI人格测试系统.zip

    事务具有ACID(原子性、一致性、隔离性和持久性)特性,能保证操作的完整性。 7. **备份与恢复**:定期备份数据库以防数据丢失,并制定恢复策略以应对意外情况。 8. **报表与数据分析**:系统可能包含统计功能,...

Global site tag (gtag.js) - Google Analytics