首页 > 解决方案 > 在大表上运行缓慢的 SQL 查询

问题描述

我在 sql server 上运行以下查询。

select * from table1 where added_on in ('2018-09-26','2018-10-02') and uid=309

我的表包含超过 3000 万条记录。但上述查询将导致少于 200 条记录,因为它需要 30-40 秒。

我在表上有聚集和非聚集索引。

主键的聚集索引和 added_on(日期字段)的非聚集索引

还有什么我可以用来放在桌子上以加快结果时间的吗

标签: sqlsql-serveroptimization

解决方案


您需要一个涵盖您正在搜索的两个字段的索引。试试这个:

CREATE INDEX IX_Composite ON [table1] ([uid], [added_on]);

推荐阅读