sql server 随机读取数据
--sql server 随机读取数据 SELECT TOP 1 * FROM [tablename] ORDER BY NEWID() SELECT * FROM [tablename] where pk in (select top 1 pk from [tablename] ORDER BY NEWID()) --这两个方法都需要排序,因此IO的逻辑读取会比较多,而且CPU占用也多很多 select top 1 * from tbname TABLESAMPLE(XXX rows) --XXX应该为整数,算法如下: --按照你表的行大小,计算一个数据页大概装多少行,XXX最少为每页的行数,建议填为2-3倍每页行数 --如果不愿意去算这个数,也可以写成如下形式: select top 1 * from tbname TABLESAMPLE(0.1 PERCENT) --由于TABLESAMPLE选项只是读取整页的数据,因此即使是很大很大的表,读取几个页的速度还是很快的 --使用TABLESAMPLE选项,数据库随机取一个或者几个数据页,然后返回结果,不扫描索引,也不做全表扫描,也不排序。 --这个时候不要被执行计划所误导,执行计划写的是Table Scan. --这个时候SET STATISTICS IO ON,你可以看到只有几个逻辑和物理读取 --结论:最后两种速度快,效率高
分类:
SQLSERVER常用查询
, 很杂很杂
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现