C#SQL Server - 通过数据访问多个数据库或多个循环更高效?

时间:2012-05-31 15:24:50

标签: c# sql performance processing-efficiency

在我的应用程序的一部分中,我必须获得满足条件的表的最后一个ID 例如:

SELECT(MAX) ID FROM TABLE WHERE Num = 2

所以我可以抓住整个表并循环查找Num = 2,或者我可以从Num = 2的表中获取数据。在后者中,我知道最后一项将是MAX ID。

无论哪种方式,我必须做大约50次...所以更有效地抓取所有数据并循环查找特定条件的数据列表...

或者根据条件多次获取数据会更好..我知道列表中的最后一项将是最大ID

我有6个条件,我必须将查询基于

我只是想知道哪个更有效...多次循环浏览大约3500个项目的列表,或多次点击数据库我已经可以像我需要的那样分解数据

3 个答案:

答案 0 :(得分:2)

我可以代表SqlServer。如果您创建一个StoredProcedure,其中Num是您传递的参数,由于其存储过程的执行计划的优化引擎,您将获得最佳性能。当然,该字段的索引是强制性的。

答案 1 :(得分:0)

让数据库完成这项工作,这就是它的目的。

答案 2 :(得分:0)

此表的插入频率是否很高?它是否具有较高的更新频率,特别是在您应用MAX功能的列上?如果答案为否,您可以考虑添加IS_MAX BIT列并使用插入触发器进行设置。这样,你想要的行基本上是缓存的,查找它是微不足道的。