SQL SERVER 性能优化一: 数据库中几百万数据查询优化

时间:2022-09-06 23:58:44

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

只要两秒!!!!