我正在編寫一個複雜的邏輯來計算銷售額和客戶獎金。我有百萬條記錄來計算獎金。代碼性能:SQL Server查詢與C#.Net Web應用程序
我想要專家的意見,以便數學運算不需要太多時間來在網頁上顯示結果。
那麼我需要寫計算部分?在SQL Server查詢(使用存儲過程和函數)或ASP.NET中使用C#.Net(業務邏輯層)?
哪一個是最佳做法?在數據庫服務器上處理還是在應用服務器上處
問候
穆赫辛JK
我正在編寫一個複雜的邏輯來計算銷售額和客戶獎金。我有百萬條記錄來計算獎金。代碼性能:SQL Server查詢與C#.Net Web應用程序
我想要專家的意見,以便數學運算不需要太多時間來在網頁上顯示結果。
那麼我需要寫計算部分?在SQL Server查詢(使用存儲過程和函數)或ASP.NET中使用C#.Net(業務邏輯層)?
哪一個是最佳做法?在數據庫服務器上處理還是在應用服務器上處
問候
穆赫辛JK
如果您有數百萬條記錄,那麼我會建議您在SQL Server中編寫計算部分,因爲業務層中的計算會花費更多時間。
以下是建議,以提高性能 -
你可以在網上搜索以找出T-SQL其他性能優化技術。
同意。另外,我建議考慮CLR功能。對於複雜的計算,CLR可能比普通的T-SQL快得多。或者它可能不在這種特殊情況下,所以測試是必要的。 – VladV 2012-04-18 07:56:58
我有記錄萬元來計算獎金
我覺得這是更好地計算出它的數據庫,以避免從傳遞數據的大量數據庫應用程序。
如果那些*數百萬行*已經在SQL Server數據庫中 - 處理那裏的數據!讓存儲過程生成結果,將其放入表中,然後在ASP.NET網頁中顯示該表的結果。 – 2012-04-18 07:27:35
如果你的計算需要大量使用聚合,你可以看看'物化視圖'。 http://en.wikipedia.org/wiki/Materialized_view – edze 2012-04-18 08:08:53