最近在做sql分页查询的话,发现数据表中的数据量非常大的话,使用count(*)去统计行数的话,还是非常慢的。20多万条数据的表,用count查询,大概在9秒左右。
服务器是4核8G内存的。5秒左右的时间,还是比较难以接受的,9秒时间的SQL语句如下所示:
/****** SSMS 的 SelectTopNRows 命令的脚本 ******/
SELECT count(*) as total
FROM [Chint.Hygiene].[dbo].[tb_UserTemperatureInfo]
/****** SSMS 的 SelectTopNRows 命令的脚本 ******/
SELECT *
FROM [Chint.Hygiene].[dbo].[tb_UserTemperatureInfo] order by ID offset 30 rows fetch next 100 rows only
上面这个SQL查询效果如下图所示:
上图可以看出,20多万条的数据,使用上面的语句写的话,用了9秒的时间,下面我们来看看上面的SQL的执行计划&