2012-07-31 155 views
0

我有一個使用企業庫4.0版企業庫記錄

它使用的企業庫,每次記錄時,有到數據庫的新連接一個大客戶 - 服務應用程序。 當我關閉記錄器(通過在web.config和app.config中使用註釋或我的on/off布爾值)批處理操作(例如請求100條記錄)時,大約需要6-7秒。當我把記錄器打開時,大約需要20秒。

我的問題是企業庫如何操作記錄器,是通過使用線程還是不使用線程?我究竟能告訴我如何?

我在問這個問題,因爲我想使用線程調用記錄器,但是如果庫已經使用線程,它將不會成功。另外,是否使用適合此操作的線程?你認爲我需要使用其他記錄器,例如Log4Net等?

+0

我很好奇你正在做多少記錄調用,顯然是16秒。一個客戶端或許多客戶端都在運行時,這些時間安排(記錄14秒)?你還使用什麼跟蹤監聽器? – 2012-08-10 04:24:37

+0

它在開發環境中,可能有10-15個併發連接......不會產生性能問題。 – lionheart 2012-09-16 08:17:05

回答

1

企業庫日誌程序同步處理請求,因此它不會產生線程來處理寫入請求。

如果您想查看正在創建的線程,則可以在調試時監視Visual Studio中的線程。

您的應用程序可以始終啓動一個線程來記錄信息,但我會警惕確定是否啓動潛在的大量短期線程實際上有助於提高性能。

我會建議分析以確定所有時間都在使用什麼。

+0

分析並檢查我們的數據庫管理員後,我們得出結論:這些數據都是關於數據庫中的索引(我們刪除了其中的一些索引並添加了其他索引)。另外,我們今天正在使用Log4Net而不是企業庫。現在,登錄時間需要2-3秒。 – lionheart 2012-09-16 08:20:35

1

企業庫日誌記錄應用程序塊是線程安全的。 如果您想了解記錄儀的工作方式,請查看source code