首页 >数据库 >mysql教程 >如何高效地从 SQL Server 表中选择随机行?

如何高效地从 SQL Server 表中选择随机行?

DDD
DDD原创
2025-01-19 08:12:15218浏览

How Can I Efficiently Select Random Rows from a SQL Server Table?

SQL Server 中随机行选择的简化方法

从相当大的 SQL Server 表中提取行的随机子集可能需要大量计算。 与使用复杂的临时表和迭代过程相比,更高效、更直接的方法是利用 SQL Server 固有的功能。

NEWID() 函数生成唯一的随机 GUID,为随机行选择提供基础。 要从名为 [yourtable] 的表中检索 10% 随机样本,请使用以下简洁查询:

<code class="language-sql">SELECT TOP 10 PERCENT * FROM [yourtable] ORDER BY NEWID()</code>

对于更大的表,可以通过此技术实现性能优化:

<code class="language-sql">SELECT * FROM [yourtable] WHERE [yourPk] IN (SELECT TOP 10 PERCENT [yourPk] FROM [yourtable] ORDER BY NEWID())</code>

此方法利用键扫描来查明所选行的主键值,随后与原始表连接以检索完整的行数据。 此连接操作通常会产生最小的开销,特别是对于大型数据集上的小百分比选择。

这些简化的技术为开发人员提供了一种从 SQL Server 表中选择随机样本的高效方法,避免了复杂且占用资源的替代方案。

以上是如何高效地从 SQL Server 表中选择随机行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn