首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >性能查询:数据库查询和数据表查询

性能查询:数据库查询和数据表查询
EN

Stack Overflow用户
提问于 2012-04-16 13:42:52
回答 2查看 1.4K关注 0票数 2

我已经选择了要过滤的数据数量。

根据结果,我必须再进行几次查询迭代。

现在我有两个选择:

1)。通过改进每次过滤的查询在DataBase上进行查询

2)。在查询时,首先将过滤后的数据放到DataTable中,然后在该DataTable上执行更多过滤操作(不需要在DataBase上查询)。

在哪种情况下性能更好?

附言:我知道以前也有人问过同样的问题。但是没有得到正确的答案。:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-16 13:56:46

如果已经在内存中了更广泛的数据集,那么"2“几乎在所有情况下都会更快;没有网络跳跃,没有带宽,没有服务器端时间。只是一个内存中的过滤器。即使在像ASP.NET这样的无状态环境中,缓存(参数化)这样的查询结果也是很常见的,这样您就可以在页面之间重用结果。

当然,不要把"2“带到荒唐的程度。从整个表开始,或者从大量的行开始,在许多级别上都是不好的:

  • large initial cost
  • 不使用/很少使用indexing
  • lots to process in memory

然而,在许多常见的场景中,您通常只查询第一页的结果和计数,因此您实际上没有该数据集(您不能从1页和一个计数中推断出过滤的子集是什么样子的)。因此"1“成为更好的选择(但也保留了对分页结果的缓存)。

票数 2
EN

Stack Overflow用户

发布于 2012-04-16 13:56:53

正确的答案:你需要决定什么是预期的/期望的性能,然后测量你感兴趣的方法,看看哪一个适合。

请注意,您需要在接近真实数据的数据集上测量prottypes。由于您建议的两种方法是内存使用和IO/网络访问之间的显式折衷,因此如果不在性能上与您的生产系统相当接近的机器上尝试您的真实数据,就不可能预测结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10169195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档