3

(測試時使用Atomikos公司分佈式事務的實現,我注意到一個大的開銷(即花了30毫秒,而無需使用XA了160 XA)性能開銷

看起來大部分時間交易在「Prepare」和「Commit」中花費了

對於測試,我使用了涉及單個數據源(Microsoft SQL Server)的事務(不現實的)場景,沒有實際的更新。在這種情況下。

所以我的問題是:

  • 這是「正常」開銷嗎?
  • 如果不是,我應該在哪裏看下? (我最好的猜測是使用SQL Server Profiler來查看數據庫內是否花費時間)

回答

1

據我所知,這種漫長的等待只發生在第一次使用事務時。

發生這種情況是因爲建立到服務器的連接以啓動事務。第一次之後,每次你打電話給OpenTransaction都不會花那麼長時間。

你可以自己測試一下。在不關閉應用的情況下,請撥打兩次交易。

對於某些開銷將存在,因爲當您使用分佈式事務時,根據您使用多少個服務器(每個服務器中有一次)來提交兩次或更多的數據。但是,這不應該是你描述的那麼久。

+0

謝謝拉斐爾。我看到的延遲不限於第一個事務(並且「UserTransaction」對象被重用)。我很好奇 - 你對分佈式交易有很好的經驗嗎?我被建議避免它們,而是實施一個特定於應用程序的機制。 –

+0

我對分佈式交易有很好的經驗。我有一個運行6個月的軟件。也許你看到的這個開銷是關於網絡或服務器的問題(也許他們會大量使用)。但是如果沒有看到你的數據庫和軟件,很難告訴你什麼問題。 –

+0

您還應該仔細檢查您是否擁有最新的SQL Server補丁程序以及服務器的負載。如果你可以發佈你正在運行的查詢,這將是很好的。 –