当前位置: 代码迷 >> Sql Server >> 你们是怎样统计表的总数的?难道也是 SELECT COUNT() ?解决办法
  详细解决方案

你们是怎样统计表的总数的?难道也是 SELECT COUNT() ?解决办法

热度:7   发布时间:2016-04-27 17:21:53.0
你们是怎样统计表的总数的?难道也是 SELECT COUNT() ???
当一个表的数据达到百万级后,再用SELECT COUNT() 后会很慢,但是因为要做分页所以总记录数还是要取出来的.
不知道大家有什么好的办法?

目前想到一个方法,就是另做一个表,专门来统计其他表的总记录数的.然后对其他表使用触发器,当insert和delete是更新记录数...

------解决方案--------------------
SQL code
select rows from sysindexes where name='aaaa'
------解决方案--------------------
SQL code
select * from sysindexes where object_name(id)='aaa'
------解决方案--------------------
SQL code
--这种方法得到的结果不准确select rows from sysindexes where name='TableName'--count(1)比count(*)快select count(1) from TableName
------解决方案--------------------
换个写法.
select * from sysindexes where object_id('aaa')=id

要求不太高的话,可以使用.
因为这个的更新不是很准确的.要求高,就自己count
------解决方案--------------------
DBCC UPDATEUSAGE 'database_name','table_name' --报告目录视图中的页数和行数错误并进行更正。
select rows from sysindexes where indid < 2 and rows > 0 and id = object_id( 'tablename ')--查询

这个结果是准确的,跟count一样,效率也高
  相关解决方案