Maison > base de données > tutoriel mysql > Comment puis-je sélectionner efficacement des lignes aléatoires dans une table SQL Server ?

Comment puis-je sélectionner efficacement des lignes aléatoires dans une table SQL Server ?

DDD
Libérer: 2025-01-19 08:12:15
original
222 Les gens l'ont consulté

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

Une approche rationalisée de la sélection aléatoire de lignes dans SQL Server

L'extraction d'un sous-ensemble aléatoire de lignes d'une table SQL Server de grande taille peut nécessiter beaucoup de calculs. Plutôt que d'utiliser des tables temporaires complexes et des processus itératifs, une méthode plus efficace et plus simple utilise les fonctions inhérentes à SQL Server.

La fonction NEWID() génère un GUID aléatoire unique, fournissant une base pour la sélection aléatoire de lignes. Pour récupérer un échantillon aléatoire de 10 % d'une table nommée [yourtable], utilisez cette requête concise :

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

Pour les tables nettement plus grandes, l'optimisation des performances est obtenue avec cette technique :

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

Cette approche exploite une analyse de clé pour identifier les valeurs de clé primaire pour les lignes sélectionnées, puis se joint à la table d'origine pour récupérer les données complètes des lignes. Cette opération de jointure entraîne généralement une surcharge minimale, en particulier pour les sélections de petits pourcentages sur de grands ensembles de données.

Ces techniques rationalisées offrent aux développeurs un moyen très efficace de sélectionner des échantillons aléatoires dans les tables SQL Server, évitant ainsi les alternatives complexes et gourmandes en ressources.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal