SELECT COUNT(*)需要进行全表扫描返回表的行数,对于数据规模非常大的表来说,这是非常耗时的操作。
如果需要获取一个表的所有行数,应当考虑从系统表sysindexes中获取的替代方案。
在查询分析器中执行如下语句:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
返回的行数为13239473。
返回的消息显示——
(所影响的行数为 1 行)
表 'E1日销售明细'。扫描计数 68,逻辑读 51302 次,物理读 5 次,预读 49831 次。
(所影响的行数为 1 行)
表 'sysindexes'。扫描计数 1,逻辑读 2 次,物理读 0 次,预读 0 次。