下面是sql语句,显示100行,查询第2页,现在的运行有点慢,大概4、5秒。
如果改成 order by id就很快,不到半秒。
这个排序也不是固定的,是根据程序可以更改的,现在想要提高速度能怎么办?
order by id快是因为id是主键默认有聚集索引吗?
那我在"年度","保管期限","顺序号"这几个列上建立非聚集索引能提高速度吗?
select * from (select top 200 row_number() over(order by "年度","保管期限","顺序号") as rowid,* from TB_1582) as t where rowid > 100
3 个解决方案
#1
("年度","保管期限","顺序号")
一起建一个索引
必须是每一种 Order By 的组合建一个索引,每个字段各自独立建索引是没用的。
必须是每一种 Order By 的组合建一个索引,每个字段各自独立建索引是没用的。
#2
order by id快是因为id是主键默认有聚集索引吗?
对的,分页速度要快,那么在order by的字段,就要有索引,最好是联合索引,比如你按照2个字段排序,那么这两个字段建个联合索引就可以了。
对的,分页速度要快,那么在order by的字段,就要有索引,最好是联合索引,比如你按照2个字段排序,那么这两个字段建个联合索引就可以了。
#3
聚集索引查询应该是最快的了
其它字段排序可以按条件组合建立索引,如果分页排序字段有升序降序之分的话索引最好一致
其它字段排序可以按条件组合建立索引,如果分页排序字段有升序降序之分的话索引最好一致
#1
("年度","保管期限","顺序号")
一起建一个索引
必须是每一种 Order By 的组合建一个索引,每个字段各自独立建索引是没用的。
必须是每一种 Order By 的组合建一个索引,每个字段各自独立建索引是没用的。
#2
order by id快是因为id是主键默认有聚集索引吗?
对的,分页速度要快,那么在order by的字段,就要有索引,最好是联合索引,比如你按照2个字段排序,那么这两个字段建个联合索引就可以了。
对的,分页速度要快,那么在order by的字段,就要有索引,最好是联合索引,比如你按照2个字段排序,那么这两个字段建个联合索引就可以了。
#3
聚集索引查询应该是最快的了
其它字段排序可以按条件组合建立索引,如果分页排序字段有升序降序之分的话索引最好一致
其它字段排序可以按条件组合建立索引,如果分页排序字段有升序降序之分的话索引最好一致