首頁 >資料庫 >mysql教程 >如何有效率地從 SQL Server 表中選擇隨機行?

如何有效率地從 SQL Server 表中選擇隨機行?

DDD
DDD原創
2025-01-19 08:12:15215瀏覽

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