0

按某些标准获取行数的最快方法是什么?
我有一张桌子:transactions(id int (PK), userId int, typeId int, dateCreated date, (and about 5-6 additional columns))
这张桌子有数百万行。

现在我需要检索此表中记录的计数...计数的标准可以是一到三列的任意组合,(userId, typeId, dateCreated)并且 dateTime 可以是“从”和“到”。

为了以最快的方式获得计数,查询和索引应该是什么?是否可以仅使用索引/统计信息来获取行数,而不读取实际的表数据?在这种情况下
是否会对性能产生影响?count(*)count(id)

谢谢你。

4

1 回答 1

0

您可以从索引中获取它,我不确定它是否 100% 准确,但您不会错过超过几行的计数。

select ob.name,  ix.rowcnt 
from sys.sysindexes ix
join sys.sysobjects ob ON ix.id = ob.id 
where ob.xtype = N'U' and ob.name = N'MyTable'

请注意,这样您可以一次获得所有表的计数。obs:注意它将为表中的每个索引返回一个值

于 2014-03-05T11:43:04.430 回答