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

Comment sélectionner efficacement un échantillon aléatoire de lignes dans une table SQL Server ?

Patricia Arquette
Libérer: 2025-01-19 07:56:09
original
448 Les gens l'ont consulté

How to Efficiently Select a Random Sample of Rows from a SQL Server Table?

Sélection de lignes aléatoires dans une table SQL Server : un guide pratique

Ce guide aborde le défi courant consistant à récupérer un échantillon aléatoire de lignes à partir d'une grande table SQL Server. Nous explorerons des méthodes efficaces pour accomplir cette tâche.

Le défi :

Travailler avec des ensembles de données étendus nécessite souvent l'extraction d'un sous-ensemble aléatoire représentatif de lignes à des fins d'analyse ou de test. Trouver un moyen rapide et fiable de le faire est la clé.

Solutions efficaces :

La fonction NEWID() fournit une approche simple pour sélectionner des lignes aléatoires. La requête suivante récupère efficacement 10 % des lignes :

SELECT TOP 10 PERCENT * FROM [yourtable] ORDER BY NEWID()
Copier après la connexion

Optimisation à grande échelle :

Pour les tables très volumineuses, la requête optimisée suivante offre des performances supérieures, en particulier lors de la sélection d'un pourcentage plus petit :

SELECT * FROM [yourtable] WHERE [yourPk] IN (SELECT TOP 10 PERCENT [yourPk] FROM [yourtable] ORDER BY NEWID())
Copier après la connexion

Cette méthode exploite une analyse de clé primaire et une jointure, ce qui entraîne une efficacité améliorée par rapport à l'approche TOP plus simple lorsqu'il s'agit de jeux de données volumineux et d'échantillons de plus petite taille. N'oubliez pas de remplacer [yourtable] et [yourPk] par les noms réels de votre table et de votre clé primaire.

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!

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