性能比較:事務處理控件(4)
發表于:2015-01-19來源:uml.org.cn作者:Priya Dhawan點擊數:
標簽:性能比較
AutomaticTxn_IP 與上述方法相比明顯緩慢,這是因為使用分布式事務協調器 (DTC) 設置事務處理的成本要比在事務處理中完成所有工作(11 次插入)的成本高。
AutomaticTxn_IP 與上述方法相比明顯緩慢,這是因為使用分布式事務協調器 (DTC) 設置事務處理的成本要比在事務處理中完成所有工作(11 次插入)的成本高。除了 DTC 外,AutomaticTxn_IP 中還因 COM+ 的相互操作和上下文轉換而產生了一些額外的成本,這一點我們從上面可以看到。
AutomaticTxn_IP 提供的性能要比 ManualTxn_COM+_OP 和 AutomaticTxn_OP 提供的性能好,因為在后者中,COM+ 應用程序被配置為服務器程序包,而服務器程序包在一個單獨的代理程序 (dllhost.exe) 中運行,因而需要數據封送。
正如我們所預計的那樣,AutoCompleteTxn_IP 和 AutoCompleteTxn_OP AutoComplete 版本分別與 AutomaticTxn_IP 和 AutomaticTxn_OP 版本的運行狀況類似。
圖 4:InsertOrder_DataSet(Order=1, Details=100)
與第一個測試一樣,在大型事務處理(101 次插入)中,事務處理控件模型之間的性能差別大大降低了。而且,與 DTC 和數據封送相關的成本也因大型事務處理的分攤而降低了?!?/p>
總結
每個事務處理模型在應用程序性能和代碼可維護性方面都各有側重,因此它們適用于不同的方案。
運行存儲過程中實現的數據庫事務處理可以提供最好的性能,因為它只需要一次數據庫往返操作。雖然它提供了很好的性能和靈活性,但用戶還需要在 Transact-SQL 中進行編碼,而這并不像在 .NET 中那樣簡單。
使用 ADO.NET 事務處理對象的手動事務處理很容易進行編碼,而且用戶可以使用顯式的指令開始和結束事務處理,因而在控制事務處理的范圍時具有很大的靈活性。與這種方便和靈活性相對應的是,ADO.NET 手動事務處理需要進行很多次往返操作,至少等于事務處理中要執行的操作數加上開始和結束事務處理所需要的往返操作次數。
由于和 DTC 的交互以及和 COM 的相互操作,自動事務處理模型還會產生一些額外開銷。而與 DTC 相關的成本可以分攤到整個事務處理過程中,如測試中所示。使用此模型的優點是大大簡化了應用程序的設計并減少了編碼需求。如果事務處理跨越多個能夠識別事務處理的資源管理器(可能包括 SQL Server 數據庫和 MSMQ 消息隊列),那么只能選擇自動事務處理。
原文轉自:http://www.uml.org.cn/Test/200505245.htm