2009-10-31 21 views
2

代碼(C#,Java)和數據庫(SQL)應該在哪裏排序或過濾?代碼(C#,Java)和數據庫(SQL)之間應該在哪裏排序或過濾?

在代碼中,它意味着使用單個存儲過程從數據庫中檢索所有數據,然後過濾數據(在業務層或數據層中)。

在數據庫中,它意味着有一個存儲過程。在這種情況下,代碼(數據層)將我的過濾器設置發送到存儲過程,以便返回輕量級數據。

什麼是更好的,在什麼情況下?

回答

3

這實際上取決於用法的性質。例如:

  • 數據大小
  • 取頻率
  • 響應時間,用戶
  • 等等等等

一般情況下,讓DB服務器做相關操作,你可以儘可能多的數據,他們爲它進行了優化。但這不是一個明確的規則。在很多情況下,一批數據被一次性檢索,預先確定並在UI層/應用程序端進行排序/過濾。例如。對於網頁上的小表進行排序以獲得更快的響應時間。

1

一般來說,您應該在您的代碼中創建請求並讓數據庫服務器完成這項工作。對於特定情況,您還可以決定在客戶類中過濾。

相關問題