性能比較:事務處理控件

發表于:2015-01-19來源:uml.org.cn作者:Priya Dhawan點擊數: 標簽:性能比較
本文通過比較事務處理模型,包括數據庫事務處理、Microsoft ADO.NET 手動事務處理和使用 Microsoft SQL Server 2000 數據庫的通用應用程序方案中的 ADO.NET 自動事務處理,重點介紹影響性能、可

摘要:本文通過比較事務處理模型,包括數據庫事務處理、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 類,以便參與事務處理。該類具有聲明性屬性的標記,指定該類參與事務處理的方式?!?/p>

測試方案

為了比較事務處理模型,我們使用了一個方法,在數據庫的相應表中插入訂單標頭和詳細信息。如果任何插入操作失敗,我們將事務處理恢復到原始狀態。如果所有插入操作成功,則提交事務處理。

為了使測試盡可能符合實際情況,加載的數據庫中包含了 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 隔離級別上運行事務處理。

原文轉自:http://www.uml.org.cn/Test/200505245.htm

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97