本指南解决了从大型 SQL Server 表中检索随机行样本的常见挑战。 我们将探索有效的方法来完成这项任务。
挑战:
处理大量数据集通常需要提取具有代表性的随机行子集进行分析或测试。 找到一种快速可靠的方法来做到这一点是关键。
有效的解决方案:
NEWID()
函数提供了一种选择随机行的简单方法。 以下查询有效检索 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>
此方法利用主键扫描和联接,在处理大量数据集和较小样本量时,与更简单的 TOP
方法相比,效率更高。 请记住将 [yourtable]
和 [yourPk]
替换为您的实际表名称和主键名称。
以上是如何从 SQL Server 表中高效地随机选择行样本?的详细内容。更多信息请关注PHP中文网其他相关文章!