博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server的三种分页方式
阅读量:6273 次
发布时间:2019-06-22

本文共 905 字,大约阅读时间需要 3 分钟。

直接上代码

1  --top not in方式   2 select top 条数 *  from tablename   3 where Id not in (select top 条数*页数  Id from tablename)   4    5    6    7 --ROW_NUMBER() OVER()方式    8  select * from (    9     select *, ROW_NUMBER() OVER(Order by Id ) AS RowNumber from tablename  10   ) as b  11   where RowNumber BETWEEN 当前页数-1*条数 and 页数*条数     12   13   14   15 --offset fetch next方式  16 --SQL2012以上的版本才支持  17 select * from tablename  18  order by Id offset 页数 row fetch next 条数 row only

 

在讨论性能之前,首先需要明确的是,我们在编写SQL语句的时候,尽量要减少不必要字段的输出,文中出于演示,所以都用的*,在实际中不要这样!!还有就是要根据业务逻辑,比如查询条件,建立合适的聚合索引和非聚合索引,索引对于查找的效率影响非常大,SQL中的索引其实就是建立某种平衡查找树

  • 采用Top – Not In - Top方案比较复杂,里面包含了in语句,效率不高,但是兼容个版本的SQL Server。
  • 采用ROW_Number方法实现分页难易适中,效率较高。LINQ中的SKIP和TAKE也是采用这种方式来进行分页的,应该是目前采用的比较广泛的分页方式。
  • FFSET FETCH 方法是 中才引入的,由于本文没有SQL Server 2012以及测试数据,从这篇文章来以及园子里的,性能应该是比较好的。

 

以上是对sql分页的一点总结,希望对您有所帮助。

转载于:https://www.cnblogs.com/moy-1313133/p/6670936.html

你可能感兴趣的文章
ASP.NET MVC性能优化(实际项目中)
查看>>
ES6里关于类的拓展(一)
查看>>
零元学Expression Blend 4 - Chapter 46 三分钟快速充电-设定Margin的小撇步
查看>>
Format Conditions按条件显示表格记录
查看>>
RichTextBox指定全部文字显示不同颜色及部分文字高亮颜色显示
查看>>
mysql优化----explain的列分析
查看>>
Python正则表达式
查看>>
Java中CAS详解
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>
命令行man的帮助手册
查看>>
Ubuntu 16.04下为Android编译OpenCV 3.2.0 Manager
查看>>
poi 导入导出的api说明(大全)
查看>>
Fix-Mapped Addresses
查看>>
fmt标签如何计算两个日期之间相隔的天数
查看>>
Spark核心技术原理透视一(Spark运行原理)
查看>>
《Gradle权威指南》--Gradle任务
查看>>
IntelliJ IDEA创建文件时自动填入作者时间 定制格式
查看>>
Android app启动activity并调用onCreate()方法时都默默地干了什么?
查看>>
远程监视jboss应用java内存的配置
查看>>
前端如何接收 websocket 发送过来的实时数据
查看>>