2012-02-13 61 views
-1

我有一个情况,我想返回一个数据库中的成员数目,我有6个类别在所有和大约15,000个成员。查询数据库与查询数据表

因此是它更好地使用类似查询数据库,6个独立时代“SELECT COUNT(*)”或者是它更好地回报所有记录,只返回类别栏,然后查询数据结果表的每6个类别来计算。

第一种方法限制了分贝查询于一个,而是返回其具有被进一步处理更多的数据,

第二种方法查询分贝六次但通过较少的数据并没有进一步处理提供的结果。

我想我在数据库引擎中要求更快或者是.net?我正在使用sqlserver 2008.net4

是否有任何最佳实践或原因人们知道为什么我应该使用一种方法而不是其他方法?

谢谢

回答

2

我明白你只是需要Catetory和Count。因此,您可以按照以下步骤执行一次查询。

SELECT CATEGORY, COUNT(CATEGRORY) TOTAL_COUNT 
FROM TABLE 
GROUP BY CATEGORY 
+0

对不起,我用上面的什么,我试图做一个简单的例子。我真正的问题是,返回一个数据集并查询它以返回六个不同的结果还是更快地运行6个单独的数据库调用会更快吗? – 2012-02-13 09:08:13

+0

干杯队友虐待这个 – 2012-02-13 09:24:49

0

当你有一群人时,查询数据库6次似乎不是一个好主意。更不用说如果您需要将类别加入到类别表中。此外,它有缺点,你必须硬编码类别或查询表JUST以获得类别(如果没有单独的查找类别表)。如果您查询数据库以获得6个类别的消息...您将如何执行此操作?与选择不同?用一组?

在任何情况下,只是为了获得所有行中的类别,这将是一个沉重的查询。所以,如果你要执行一个沉重的查询,至少做到这一点的最简单的方法:

select category, count(*) CategoryCount from table 
group by category 
+0

的变化我有什么是在SQLServer中,我查询有一个领域,如移动,母亲,出生日期等等的看法。 我需要根据做输出不同的数字来我显示什么是人的数据, 即 #1有多少人有手机号码, #2有多少人有孩子(需要一些逻辑) 有些查询是简单,有些很复杂 对每个数据库运行一个查询更好吗? I.e select移动不为空的表中的select count(id) 或者从数据库中获取单个表到应用程序并处理所有在应用程序级别的繁重工作更好吗? – 2016-04-16 21:58:11