2012-05-31 31 views
0

在我的應用程序的一部分,我一定要得到其中一個條件得到滿足 例如一個表的最後ID:C#SQL Server - 更有效的多數據庫訪問或通過數據的多個循環?

SELECT(MAX) ID FROM TABLE WHERE Num = 2 

所以我可以抓住整個表和循環通過它尋找民= 2 ,或者我可以從Num = 2的表格中獲取數據。在後者中,我知道最後一個項目是MAX ID。

無論哪種方式,我必須這樣做50倍左右......所以這將是更有效的抓住所有的數據,並通過數據尋找特定條件的列表循環...

或者將它更好的基礎上,我知道在列表中的最後一個項目將是最大的id

我有6個條件,我將不得不立足於

IM的查詢condition..where來獲取數據好幾次剛想知道哪種方法更高效......多次循環訪問大約3500個項目的列表,或者在我所在的地方多次訪問數據庫可以像我需要的那樣已經將數據分解了

回答

2

我可以說SqlServer。如果創建了一個StoredProcedure,其中Num是您傳遞的參數,由於存儲過程執行計劃上的優化引擎,您將獲得最佳性能。當然,該領域的索引是強制性的。

+0

是的,它不斷更新,我會說至少每秒2或3次 – CSharpDev

0

讓數據庫完成這項工作,這就是它設計的目的。

0

該表是否具有較高的插入頻率?它是否具有較高的更新頻率,特別是在您應用MAX函數的列上?如果答案爲否,您可以考慮添加一個IS_MAX BIT列並使用插入觸發器進行設置。這樣,你想要的那一行基本上就被緩存了,查找起來也很簡單。

+0

是的,它不斷更新,我會說至少每秒2或3次 – CSharpDev

相關問題