日期:2014-05-17  浏览次数:20473 次

执行COUNT的时候,两百万条要11秒。
SELECT COUNT(OrderID) FROM Order;

           
-----------
    2197401


COUNT依赖什么?要这么久。

------解决方案--------------------
 COUNT(*)
这查询会用到表的最小索引,没索引时会用到堆扫描

 慢同数据量和硬件有关和索引碎片和设计不合理都有关,你最好列一下你的结构或语句
------解决方案--------------------
引用:
引用:楼主,你的表没有索引吧,如果没有,将全表扫描完才能知道有多少行

可以个orderid建立主键,这样你count会比较快

没有任何条件的count不会过滤掉任何数据,就是全表扫描的。

不是这样,我做了实验,在同一个表上,同一列,有聚集索引,有非聚集索引,sqlserver会优先用非聚集索引的索引扫描。如果只有聚集索引公用聚集索引扫描。