2012-04-18 68 views
6

我正在編寫一個複雜的邏輯來計算銷售額和客戶獎金。我有百萬條記錄來計算獎金。代碼性能:SQL Server查詢與C#.Net Web應用程序

我想要專家的意見,以便數學運算不需要太多時間來在網頁上顯示結果。

那麼我需要寫計算部分?在SQL Server查詢(使用存儲過程和函數)或ASP.NET中使用C#.Net(業務邏輯層)?

哪一個是最佳做法?在數據庫服務器上處理還是在應用服務器上處

問候

穆赫辛JK

+1

如果那些*數百萬行*已經在SQL Server數據庫中 - 處理那裏的數據!讓存儲過程生成結果,將其放入表中,然後在ASP.NET網頁中顯示該表的結果。 – 2012-04-18 07:27:35

+0

如果你的計算需要大量使用聚合,你可以看看'物化視圖'。 http://en.wikipedia.org/wiki/Materialized_view – edze 2012-04-18 08:08:53

回答

4

如果您有數百萬條記錄,那麼我會建議您在SQL Server中編寫計算部分,因爲業務層中的計算會花費更多時間。

以下是建議,以提高性能 -

  • 編寫存儲過程
  • 創建索引獲取記錄更快
  • 使用臨時表如果manupulation是巨大的記錄

你可以在網上搜索以找出T-SQL其他性能優化技術。

+1

同意。另外,我建議考慮CLR功能。對於複雜的計算,CLR可能比普通的T-SQL快得多。或者它可能不在這種特殊情況下,所以測試是必要的。 – VladV 2012-04-18 07:56:58

1

我有記錄萬元來計算獎金

我覺得這是更好地計算出它的數據庫,以避免從傳遞數據的大量數據庫應用程序。