分享
 
 
 

性能比较:事务处理控件

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

摘要:本文通过比较事务处理模型,包括数据库事务处理、Microsoft ADO.NET 手动事务处理和使用 Microsoft SQL Server 2000 数据库的通用应用程序方案中的 ADO.NET 自动事务处理,重点介绍影响性能、可伸缩性和可维护性的事务处理控件的性能部分。

简介

事务处理控件的体系结构选择影响到性能、可伸缩性和可维护性。本文通过比较各种事务处理模型,包括数据库事务处理、Microsoft® ADO.NET 手动事务处理和使用 Microsoft SQL Server™ 2000 数据库的通用应用程序方案中的 ADO.NET 自动事务处理等模型的相关性能,重点介绍这些选择的性能部分。

有关此处所比较的技术方面的代码示例,请参阅 Transaction Control(英文)中的相关文章。

体系结构选项

事务处理控件模型包括数据库事务处理、手动事务处理和自动事务处理。虽然这些模型完成的任务相同,即维护某个事务处理范围内资源之间的一致性,但它们又各有优缺点,因此用途也各不相同。

数据库事务处理

数据库事务处理是在 Transact-SQL 中实现的,Transact-SQL 将所需的操作打包在 BEGIN TRANSACTION 和 COMMIT/ROLLBACK TRANSACTION 语句中。

手动事务处理

手动控制事务处理范围是通过使用一组 ADO.NET 对象进行的,使用明确的指令开始和结束事务处理。

自动事务处理

在 Microsoft Windows® 2000 组件服务 (COM+) 中注册 .NET 类,以便参与事务处理。该类具有声明性属性的标记,指定该类参与事务处理的方式。

测试方案

为了比较事务处理模型,我们使用了一个方法,在数据库的相应表中插入订单标头和详细信息。如果任何插入操作失败,我们将事务处理恢复到原始状态。如果所有插入操作成功,则提交事务处理。

为了使测试尽可能符合实际情况,加载的数据库中包含了 10 万行客户帐户,100 万行订单(每个客户 10 个订单)和 500 万个订单详细信息(每个订单 5 个详细信息)。这些数据位于 SQL Server 2000 数据库和 SQL Server .NET 数据提供程序中,用于连接 SQL Server。此处比较的某些方法使用了 SQL Server 2000 的 XML 功能。

InsertOrder

InsertOrder 方法接受代表一个订单和多个详细信息的数据,然后将数据插入到数据库中相应的 Order 和 OrderDetails 表中,作为该事务处理的一部分。

测试工具和策略

在我们的测试中,一个 ASPX Web 页调用了一个包含测试代码的 .NET 程序集。如果直接测试事务处理控件技术,而不是通过 Web 服务器,我们可以获得更好的绝对性能,然而,对通用应用程序方案而言,在无状态环境中进行测试更具现实意义。另外,有很多测试工具可以对提供多线程测试的 Web 页进行适当地强度测试。

为达到测试目的,我们使用了 Microsoft 应用程序中心测试 (ACT)。它可以对 Web 服务器进行强度测试,分析 Web 应用程序(包括 ASP 页及其使用的组件)的性能和可伸缩性问题。有关如何创建和运行测试的详细信息,请参阅 ACT documentation(英文)。通过打开到服务器的多个连接并迅速发送 HTTP 请求,应用程序中心测试可以模拟一大组用户。它还允许我们建立实际的测试方案,我们可以在方案中使用一组随机参数值调用同一个方法。此功能很重要,这样用户就不必使用相同的参数值反复调用同一个方法。另一个有用的功能是,应用程序中心测试可以记录测试结果,从而提供有关 Web 应用程序性能的最重要的信息。

根据业务需求不同,应用程序可能在不同的事务处理隔离级别上运行。隔离是指一个事务处理必须和其他事务处理分离的程度。隔离级别越高,越能保证数据的一致性,但可能会严重影响应用程序的伸缩能力。降低隔离级别可以增强应用程序的可伸缩性,但却不能保证数据的准确性。Microsoft SQL Server 2000 支持四种隔离级别:READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ 和 SERIALIAZABLE。默认情况下,它在 READ COMMITTED 隔离级别下运行。有关详细信息,请参阅 Microsoft SQL Server 2000 documentation(英文)。Windows 2000 上运行的 COM+(1.0 版)只支持 SERIALIAZABLE 隔离,即最高程度的隔离。这样高的数据保护级别大大影响了性能。(注意:与 Microsoft Windows .NET Server(目前最高版本是 Beta 3)一同发行的 COM+ 1.5 允许对事务处理组件的隔离级别进行配置。)为了对事务处理模型进行客观的比较,我们在 SERIALIAZABLE 隔离级别上运行事务处理。

计算机配置

下表提供了用于执行测试的测试台配置的简单摘要。

表 1:客户端计算机配置

性能比较:事务处理控件

使用 .NET 建立分布式应用程序

Priya Dhawan

Microsoft Developer Network

2002 年 2 月

摘要:本文通过比较事务处理模型,包括数据库事务处理、Microsoft ADO.NET 手动事务处理和使用 Microsoft SQL Server 2000 数据库的通用应用程序方案中的 ADO.NET 自动事务处理,重点介绍影响性能、可伸缩性和可维护性的事务处理控件的性能部分。

目录

简介

体系结构选项

测试方案

测试工具和策略

计算机配置

性能测试结果

总结

简介

事务处理控件的体系结构选择影响到性能、可伸缩性和可维护性。本文通过比较各种事务处理模型,包括数据库事务处理、Microsoft® ADO.NET 手动事务处理和使用 Microsoft SQL Server™ 2000 数据库的通用应用程序方案中的 ADO.NET 自动事务处理等模型的相关性能,重点介绍这些选择的性能部分。

有关此处所比较的技术方面的代码示例,请参阅 Transaction Control(英文)中的相关文章。

体系结构选项

事务处理控件模型包括数据库事务处理、手动事务处理和自动事务处理。虽然这些模型完成的任务相同,即维护某个事务处理范围内资源之间的一致性,但它们又各有优缺点,因此用途也各不相同。

数据库事务处理

数据库事务处理是在 Transact-SQL 中实现的,Transact-SQL 将所需的操作打包在 BEGIN TRANSACTION 和 COMMIT/ROLLBACK TRANSACTION 语句中。

手动事务处理

手动控制事务处理范围是通过使用一组 ADO.NET 对象进行的,使用明确的指令开始和结束事务处理。

自动事务处理

在 Microsoft Windows® 2000 组件服务 (COM+) 中注册 .NET 类,以便参与事务处理。该类具有声明性属性的标记,指定该类参与事务处理的方式。

测试方案

为了比较事务处理模型,我们使用了一个方法,在数据库的相应表中插入订单标头和详细信息。如果任何插入操作失败,我们将事务处理恢复到原始状态。如果所有插入操作成功,则提交事务处理。

为了使测试尽可能符合实际情况,加载的数据库中包含了 10 万行客户帐户,100 万行订单(每个客户 10 个订单)和 500 万个订单详细信息(每个订单 5 个详细信息)。这些数据位于 SQL Server 2000 数据库和 SQL Server .NET 数据提供程序中,用于连接 SQL Server。此处比较的某些方法使用了 SQL Server 2000 的 XML 功能。

InsertOrder

InsertOrder 方法接受代表一个订单和多个详细信息的数据,然后将数据插入到数据库中相应的 Order 和 OrderDetails 表中,作为该事务处理的一部分。

测试工具和策略

在我们的测试中,一个 ASPX Web 页调用了一个包含测试代码的 .NET 程序集。如果直接测试事务处理控件技术,而不是通过 Web 服务器,我们可以获得更好的绝对性能,然而,对通用应用程序方案而言,在无状态环境中进行测试更具现实意义。另外,有很多测试工具可以对提供多线程测试的 Web 页进行适当地强度测试。

为达到测试目的,我们使用了 Microsoft 应用程序中心测试 (ACT)。它可以对 Web 服务器进行强度测试,分析 Web 应用程序(包括 ASP 页及其使用的组件)的性能和可伸缩性问题。有关如何创建和运行测试的详细信息,请参阅 ACT documentation(英文)。通过打开到服务器的多个连接并迅速发送 HTTP 请求,应用程序中心测试可以模拟一大组用户。它还允许我们建立实际的测试方案,我们可以在方案中使用一组随机参数值调用同一个方法。此功能很重要,这样用户就不必使用相同的参数值反复调用同一个方法。另一个有用的功能是,应用程序中心测试可以记录测试结果,从而提供有关 Web 应用程序性能的最重要的信息。

根据业务需求不同,应用程序可能在不同的事务处理隔离级别上运行。隔离是指一个事务处理必须和其他事务处理分离的程度。隔离级别越高,越能保证数据的一致性,但可能会严重影响应用程序的伸缩能力。降低隔离级别可以增强应用程序的可伸缩性,但却不能保证数据的准确性。Microsoft SQL Server 2000 支持四种隔离级别:READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ 和 SERIALIAZABLE。默认情况下,它在 READ COMMITTED 隔离级别下运行。有关详细信息,请参阅 Microsoft SQL Server 2000 documentation(英文)。Windows 2000 上运行的 COM+(1.0 版)只支持 SERIALIAZABLE 隔离,即最高程度的隔离。这样高的数据保护级别大大影响了性能。(注意:与 Microsoft Windows .NET Server(目前最高版本是 Beta 3)一同发行的 COM+ 1.5 允许对事务处理组件的隔离级别进行配置。)为了对事务处理模型进行客观的比较,我们在 SERIALIAZABLE 隔离级别上运行事务处理。

计算机配置

下表提供了用于执行测试的测试台配置的简单摘要。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有