Je dois sélectionner des lignes aléatoires de ma table sql, lors de la recherche de ce cas dans google, ils ont suggéré à ORDER BY NEWID()
mais il réduit les performances. Comme ma table contient plus de 2'000'000 lignes de données, cette solution ne me convient pas.Obtenir des données aléatoires de SQL Server sans impact sur les performances
J'ai essayé ce code pour obtenir des données aléatoires:
SELECT TOP 10 *
FROM Table1
WHERE (ABS(CAST((BINARY_CHECKSUM(*) * RAND()) AS INT)) % 100) < 10
Il diminue également les performances parfois.
Pourriez-vous me suggérer une bonne solution pour obtenir des données aléatoires de ma table, j'ai besoin de lignes minimum de ces tables comme 30 lignes pour chaque demande. J'ai essayé TableSAMPLE pour obtenir les données, mais il ne retourne rien une fois que j'ai ajouté ma condition où il renvoie les données par la base de la page et non la base de la ligne.
[Cochez cette case, je pense que cela vous aide] (https://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – Dogan
Votre tableau a un index unique ou une clé primaire? –
Oui, il a la clé primaire avec l'index unique – Manikandan