1、当需要查询表中所有数据时
比较以下三种查询语句:
假设数据表为BasicMsg20170401,共有17列,数据条数为两百八十四万
(1)SELECT * FROM BasicMsg20170401
耗时44秒以上
(2)SELECT 列1,列2... FROM BasicMsg20170401
耗时28~30秒上下
(3)SELECT 列1,列2... FROM BasicMsg20170401 WITH (index(SelAA_Index) )
强制加入非聚集索引后,耗时23~28上下
总结:加入强制索引,当数据量较少时并没有多少优化,数据量大时,会有些许优化。大量数据查询,尽量不用SELECT *。
当数据库用久了发现查询变慢,需要检查数据库初始值大小与数据增长方式是否合理;或者将数据库文件组放置在不同的磁盘空间。
2、一般不会需要查询全表数据,尽量将在查询语句后添加筛选语句,筛选键尽量为索引列
查询两百万数据30秒,假如在“列1”上加了索引,则可用如下查询语句
SELECT 列1,列2... FROM BasicMsg20170401 WITH (index(SelAA_Index) ) where 列1<=2842364
只要两秒!!!!