Maison > base de données > tutoriel mysql > Comment puis-je sélectionner efficacement un échantillon aléatoire dans une table SQL Server ?

Comment puis-je sélectionner efficacement un échantillon aléatoire dans une table SQL Server ?

Susan Sarandon
Libérer: 2025-01-19 08:07:10
original
704 Les gens l'ont consulté

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

Sélectionnez efficacement des échantillons aléatoires à partir des tables SQL Server

La récupération d'échantillons de lignes aléatoires à partir de grandes tables SQL Server est utile à diverses fins. Une approche courante consiste à générer une colonne « nombre aléatoire » dans une table temporaire, à la remplir avec des valeurs aléatoires, puis à sélectionner les lignes dans lesquelles le nombre aléatoire se situe dans la plage souhaitée. Cependant, cette approche peut s’avérer complexe et inefficace.

Une méthode plus directe consiste à utiliser la fonction NEWID(). NEWID() génère un identifiant unique basé sur une combinaison d'heure système et de caractère aléatoire. En triant le tableau en fonction du résultat de NEWID(), vous randomisez efficacement l'ordre des lignes.

Pour sélectionner un pourcentage spécifique de lignes, vous pouvez utiliser la clause TOP. Par exemple, pour sélectionner 10 % des lignes d'une table nommée [votretable], vous utiliserez la requête suivante :

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

Bien que cette méthode soit généralement efficace, vous pouvez rencontrer des problèmes de performances lorsque vous travaillez avec des tables particulièrement volumineuses. Pour optimiser les performances, vous pouvez combiner les clauses TOP et WHERE :

<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 requête utilise [yourPk] comme clé primaire. La requête interne récupère les clés primaires des lignes sélectionnées et la requête externe utilise ces clés primaires pour filtrer la table. Cette approche améliore les performances en réduisant le nombre de lignes analysées.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal