Hallo, ich weiß, wie man zufällige Zeile bekommen, aber ich brauche eine optimierte Möglichkeit, ich migrieren riesige Daten von einem Schema zu einem anderen in oracle.Andere als Count Validierung auf jedem Tisch. Ich tue zufällige Aufzeichnung Validierung (für jede beliebige Zeile, ich bin Überprüfung, ob alle Spaltenwerte übereinstimmen oder nicht zwischen den Datenbanken) .Ich bin mitWie bekomme ich eine zufällige Zeile aus der Datenbank in besserer Weise
SELECT * FROM (SELECT * FROM ADM_USER ORDER BY dbms_random.value) WHERE rownum = 1;
Davor war ich mit:
select * from ADM_USER where ADM_USER_ID=(select Round(dbms_random.value(1,max(ADM_USER_ID))) from ADM_USER)
Das Problem mit letzterem ist, dass Werte in ADM_USER_ID nicht zusammenhängend sind. In den meisten Fällen gibt die Abfrage eine leere Ergebnismenge zurück. Die erste ist gut, aber für Tische mit großer Kardinalität dauert es 6 bis 7 Sekunden.
Vielen Dank im Voraus.
'SELECT * FROM ADM_USER wobei ADM_USER_ID = (SELECT TOP 1 ADM_USER_ID VON ADM_USER ORDER BY dbms_random.value);' – artm
Ist dies MySQL oder Oracle? – mathguy
SELECT TOP (1) ... ORDER BY NEWID() – Biscuits