添加聚集索引后高效分页查询的效率
2017-05-24 11:13
155 查看
本人使用的是sql 2012数据库
100次 用时82秒,通过为grade添加聚集索引,用时 84秒
100次 用时86秒,通过为grade添加聚集索引,用时 7秒
100次,添加gradle聚集索引,用时9秒
100次,添加gradle聚集索引,用时9秒
100次,添加gradle聚集索引,用时4秒
本人通过添加和删除聚集索引发现:使用SQL server 2012提供的 OFFSET 4 ROWS FETCH NEXT 3 ROWS ONLY 的查询语句,在速率上没有明显的提示。
ALTER proc [dbo].[ex2]( @count int --次数 ) as begin declare @i int set @i = 0 while @i < @count begin SELECT * FROM product0 WHERE [bName] like '%23%' Order by grade desc,createTime desc OFFSET 4 ROWS FETCH NEXT 3 ROWS ONLY ; set @i = @i + 1 end end
100次 用时82秒,通过为grade添加聚集索引,用时 84秒
GO ALTER proc [dbo].[ex3]( @count int --次数 ) as begin declare @i int set @i = 0 while @i < @count begin SELECT * FROM product0 w1 WHERE id in ( SELECT top 3 id FROM ( SELECT top 7 ID, grade,createTime FROM product0 where [bName] like '%23%' and [pName] like '%%' and [find0] like '%%' and [find1] like '%%' ORDER BY grade desc ) w order by grade,createTime DESC ) order by grade desc,createTime DESC set @i = @i + 1 end end
100次 用时86秒,通过为grade添加聚集索引,用时 7秒
查询1000的后三条数据,效率比较
GO ALTER proc [dbo].[ex1]( @count int --次数 ) as begin declare @i int set @i = 0 while @i < @count begin SELECT * FROM product0 w1, ( SELECT TOP 3 id FROM ( SELECT TOP 1000 id, grade,createTime FROM product0 where [bName] like '%23%' and [pName] like '%%' and [find0] like '%%' and [find1] like '%%' ORDER BY grade DESC ) w ORDER BY grade ASC ) w2 WHERE w1.id = w2.id ORDER BY w1.grade DESC, w1.createTime desc set @i = @i + 1 end end
100次,添加gradle聚集索引,用时9秒
GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[ex3]( @count int --次数 ) as begin declare @i int set @i = 0 while @i < @count begin SELECT * FROM product0 w1 WHERE id in ( SELECT top 3 id FROM ( SELECT top 1000 ID, grade,createTime FROM product0 where [bName] like '%23%' and [pName] like '%%' and [find0] like '%%' and [find1] like '%%' ORDER BY grade desc ) w order by grade ) order by grade desc,createTime DESC set @i = @i + 1 end end
100次,添加gradle聚集索引,用时9秒
GO ALTER proc [dbo].[ex2]( @count int --次数 ) as begin declare @i int set @i = 0 while @i < @count begin SELECT * FROM ( SELECT TOP 3 * FROM ( SELECT TOP 1000 * FROM product0 where [bName] like '%23%' and [pName] like '%%' and [find0] like '%%' and [find1] like '%%' ORDER BY grade DESC ) f ORDER BY f.grade ASC ) s ORDER BY s.grade DESC ,s.createTime Desc set @i = @i + 1 end end
100次,添加gradle聚集索引,用时4秒
go execute sp_helpindex @objname = 'product0' --查看索引 go drop index product0.CLUSTER_id; --删除索引 go CREATE CLUSTERED INDEX CLUSTER_id ON product0(grade) --创建索引
本人通过添加和删除聚集索引发现:使用SQL server 2012提供的 OFFSET 4 ROWS FETCH NEXT 3 ROWS ONLY 的查询语句,在速率上没有明显的提示。
相关文章推荐
- \t\tSQL Server 索引结构及其使用 查询优化/高效分页的最关键因素:聚集索引
- mysql数据库添加索引优化查询效率
- oralce 提高查询效率 给条件字段添加索引 sql
- mysql 字段类型对查询效率的影响实验及小范围取值字段不宜添加索引
- 聚集索引与非聚集索引及其查询效率【转载】
- 【MySQL】关于MySQL添加索引后提升的查询效率也很少的解决办法
- 聚集索引与非聚集索引及其查询效率【转载】
- MySQL查询效率优化--添加索引命令
- Oracle为了增加查询效率给条件字段添加索引
- SQLSERVER,ORACLE,MYSQL高效分页查询
- SQL SERVER 2000 高效分页查询语句
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除、导出、突出显示等常见应用实现(cs)
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除
- 高效的jsp分页查询
- 高效的jsp分页查询
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范
- [原创][分页] DataList URL 高效查询翻页
- 高效的jsp分页查询