Ich möchte eine zufällige Zeile aus einer sehr großen Tabelle (10 mil Datensätze) auswählen. Daher scheint die am häufigsten anzutreffende Strategie wie RAND()
und NEWID()
nicht praktikabel zu sein.SQL Large Table wählen zufällige Zeilenstrategie
Ich habe die folgende Strategie ausprobiert und würde gerne wissen, ob dies der idealste Weg ist.
Erstellen Sie ein neues Feld namens ‚RandomSort‘ als UniqueIdentified
Am Ende jeder Stunde/Tag wird ein
Update RandomSort = NewID()
auf die gesamte Tabelle tun- Jedes Mal, wenn ich fragen müssen, ich tun kann, ein
Top 10 Order by RandomSort
Es ist die Arbeit erledigt bekommt (besser als ORDER BY NewID
), aber nicht sicher, ob dies die beste Praxis so weit ist?
Hat die Tabelle einen ganzzahligen Primärschlüssel? –
Warum sagen Sie, dass 'RAND()' und 'NEWID()' unpraktisch ist? –
Es scheint gut zu sein. Aber betont das UPDATE nicht zu sehr die DB? – Galma88