count(*)对于单张表几百万上千万级数据取总记录数好象速度有点慢,有没有更好的方法

sw19810913 2010-04-28 10:55:43
做的分页,要取总记录数


//取得记录数
public int getCount() {
String sql = "select count(1) from blog";
try {
result = (Integer) qr.query(sql,new ScalarHandler(1));
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("result:"+result);
return result;
}



数据量达到几百万上千万以上好象就有点慢了,而且在页面中首次加载的速度也很慢
...全文
332 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sw19810913 2010-04-28
  • 打赏
  • 举报
回复
学习了!谢谢!
fwacky 2010-04-28
  • 打赏
  • 举报
回复

select ROWCNT from SYSINDEXES where id =OBJECT_ID('tb_B') and INDID<2
东那个升 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ldslove 的回复:]
--2005 2008

SELECT SUM (row_count) AS total_number_of_rows
FROM sys.dm_db_partition_stats
where object_id=object_id('HumanResources.EmployeeAddress')
AND (index_id=0 or index_id=1);
[/Quote]

'HumanResources.EmployeeAddress' 这是你的表名
东那个升 2010-04-28
  • 打赏
  • 举报
回复
--2005 2008

SELECT SUM (row_count) AS total_number_of_rows
FROM sys.dm_db_partition_stats
where object_id=object_id('HumanResources.EmployeeAddress')
AND (index_id=0 or index_id=1);

bancxc 2010-04-28
  • 打赏
  • 举报
回复
SYSINDEXES
htl258_Tony 2010-04-28
  • 打赏
  • 举报
回复
SELECT B.ROWCNT AS 记录数

FROM SYSOBJECTS A

JOIN SYSINDEXES B

ON A.ID=B.ID AND A.XTYPE='U'

AND B.INDID<2

WHERE A.NAME='blog'
你那个改为这样试试
Breezexiang 2010-04-28
  • 打赏
  • 举报
回复
强!学习
htl258_Tony 2010-04-28
  • 打赏
  • 举报
回复
快速得到数据库中所有用户表的记录数(行数)  

SELECT A.NAME AS 表名,B.ROWCNT AS 记录数

FROM SYSOBJECTS A

JOIN SYSINDEXES B

ON A.ID=B.ID AND A.XTYPE='U'

AND B.INDID<2

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧