N Update zufällige Zeilen in SQL

Habe ich die Tabelle mit über 1000 Zeilen.Ich habe zum aktualisieren einer Spalte("X") in der Tabelle " Y " für n ramdom Zeilen. Dafür habe ich folgende Abfrage

update xyz set X='Y' when m in (
'SELECT m FROM (SELECT m
FROM xyz
order by dbms_random.value
) RNDM 
where rownum < n+1);

Gibt es eine weitere effiziente Art und Weise zu schreiben, diese Abfrage. Die Tabelle hat keinen index.
Bitte helfen?

  • Wenn Sie nicht wirklich wichtig ist, welche Zeilen aktualisiert werden, was ist falsch mit, nur die Aktualisierung der top - rownum Zeilen? Wenn es keinen expliziten Auftrag an den Befehl, erhalten Sie eine nicht-guarunteed Bestellung (zugegeben, es ist wahrscheinlich, Datei-einfügen, aber nicht zwingend) in jedem Fall. Die Aktualisierung "eine zufällige Zeile" in der Regel bedeutet "I don' T care, die ein" - es sei denn, Sie benötigen es in der Tabelle verteilt werden, an welcher Stelle könnten Sie wählen nur jeder fünfte oder so etwas (möglicherweise durch die id Spalte).
  • Könnte sein, dass das update ist Teil eines Prozesses für die Probenahme-Datensätze für eine weitere überprüfung, Test, QA, etc. In dem Fall random versus nicht-ist bestimmt ein wichtiger Unterschied. Das ist, was ich nahm an, der OP sucht, wenn er fragte nach dem Zufallsprinzip.
  • Oder für die Angabe von random contest belohnt; Sie könnte Recht haben.
Schreibe einen Kommentar