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

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

DDD
發布: 2025-01-19 08:12:15
原創
264 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板