前段时间看到了园子的朋友在讨论SQL Server的Paging Select问题,在感觉到有些朋友可能对SQL Server(2000以上版本的)的一些地方还不太清楚,这里分享一下SQL Server自2000版本后提供的一些特色处理方式:
TOP N排序
新的TOP N引擎可以减少以往先sort再top n的负载,当数据读入到Storage Engine时就先过滤出top n的记录,然后在对这些记录进行sort等操作,这样的设计可以在大多数情况下提升效率,缩短查询时间。
Merry-Go-Round Scans
胡百敬老师在他一本讲解性能调教的书中将其翻译为旋转木马式扫描,这个算法用于处理相同数据的重复扫描。例如我们有一页数据,两个用户都去查询它们,如果都是从page的开始部分进行scan,假设当user A scan到30%的时候user B开始scan操作,那么当user A进行到60%的时候user B刚好完成30%,这种设计可能会导致在扫描大型数据表的时候引起硬盘的剧烈震动!而采用Merry-Go-Round方式,当user A scan到30%的时候user B开始从A的当前位置scan,user A完成整个操作时user B完成了70%,然后再从页首开始scan剩下的30%,这样他们就使用相同的查询计划读取了部分数据。这种方式减少了大量在极端时间内先后查询相同的数据时,系统I/O来回读取的的情况,在增强读取速度和无序扫描的同时,也不需要同步了。
Katmai在这两方面有没有更好的改进还不知道,我的SQL Server 2008一直没法安装成功,也没法尝试一下,明天准备做虚机再试一次,有相似经历的朋友已经解决问题的还请指教一下。
分类:
Training@cnblogs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架