千家信息网

SQL Server分页编号的示例分析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关SQL Server分页编号的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。今天看书讲T-SQL,看到了UNBOUNDED PRECEDI
千家信息网最后更新 2026年11月03日SQL Server分页编号的示例分析

这篇文章给大家分享的是有关SQL Server分页编号的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

今天看书讲T-SQL,看到了UNBOUNDED PRECEDING,就想比对下ROW_NUMBER()的运行速度。

sql及相关的结果如下,数据库中的数据有5W+。

ROW_NUMBER():SET STATISTICS TIME ONSELECT  ROW_NUMBER() OVER(ORDER BY Id DESC) rn,IdFROM  dbo.T_MyCourse

运行结果

UNBOUNDED PRECEDINGSET STATISTICS TIME ONSELECT  SUM(1) OVER(ORDER BY Id DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) rn,IdFROM  dbo.T_MyCourse

运行结果

通过运行之后,看到结果,使用微软官方提供的方法进行编号排序,速度明显的提高。

不过我使用上述方法进行分页获取数据的时候结果又有点不一样。

分页获取数据:

ROW_NUMBER() 分页获取数据:

SET STATISTICS TIME ONSELECT  *FROM  (  SELECT    ROW_NUMBER() OVER(ORDER BY Id DESC) rn,Id  FROM    dbo.T_MyCourse  )aWHERE  a.rn BETWEEN 55 AND 444

执行sql命令:DBCC DROPCLEANBUFFERS ,清除数据库缓存后的结果

UNBOUNDED分页获取数据:

SET STATISTICS TIME ONSELECT  *FROM  (  SELECT    SUM(1) OVER(ORDER BY Id DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) rn,Id  FROM    dbo.T_MyCourse  )aWHERE  a.rn BETWEEN 22 AND 444

UNBOUNDED这个方式下执行了DBCC DROPCLEANBUFFERS 清除缓存的sql也没有用,执行时间没有变化。

通过上述结果,看到ROW_NUMBER()获取分页的数据明显更快,我猜测是微软对ROW_NUMBER()这个方法做了优化,可能是有缓存,读取的缓存中的数据然后进行分页。

感谢各位的阅读!关于"SQL Server分页编号的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

数据 结果 缓存 运行 方法 示例 分析 明显 内容 数据库 更多 篇文章 速度 微软 不错 实用 命令 官方 我猜 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 广州万易互联网科技有限公司 深圳九邦互联网科技有限公司 互联网医疗科技 互联网 科技创新 互联网 科技创业 期待互联网科技 互联网金融科技平台 万达互联网科技 卓越科技互联网 招聘 博兴的互联网电子科技公司 互联网科技有哪些公司 互联网金融中的现代科技 深圳无忧互联网科技 中天科技中国工业互联网 中国互联网公司的科技投入 求路客互联网科技电话 广州三三互联网科技有限公司 互联网科技创新创业项目 承德科技产业互联网平台 互联网科技公司起名 中国最先进互联网科技公司 互联网金融科技公司干啥的 消费医药和互联网科技 深圳市优智互联网科技有限公司 洛阳共同富裕互联网科技有限公司 徐州市互联网科技有限公司 工业互联网展湾科技股份有限公司 广州燕处互联网科技有限公司 互联网科技包装股
0