Das Generieren von Zufallsstichproben aus SQL Server-Tabellen ist für verschiedene Zwecke ein nützlicher Vorgang. Eine gängige Lösung besteht darin, zufällig eine feste Anzahl von Zeilen aus der Tabelle auszuwählen.
Nachteile komplexer Methoden
Die im Artikel erwähnten Probleme weisen auf komplexe Methoden hin, die temporäre Tabellen und RAND()-Schleifen verwenden. Diese Methoden sind ineffizient und unflexibel.
Einschränkungen der NEWID()-Methode
Der Artikel erwähnt auch eine alternative Methode, die die Funktion NEWID() verwendet. Dieser Ansatz ist jedoch möglicherweise nicht für die Anforderung geeignet, einen bestimmten Prozentsatz von Zeilen auszuwählen.
T-SQL-Lösung
Um dieses Problem zu lösen, stellt der Artikel ein SQL Server-Skript bereit:
<code class="language-sql">select top 10 percent * from [yourtable] order by newid()</code>
Diese Anweisung verwendet die Funktion NEWID() und die TOP-Klausel, um die obersten 10 % der Zeilen auszuwählen und eine Zufallsstichprobe der Tabelle zurückzugeben.
Optimierungsmethoden für große Tabellen
Bei großen Tabellen kann die Leistung durch die Verwendung des folgenden modifizierten Skripts verbessert werden:
<code class="language-sql">select * from [yourtable] where [yourPk] in (select top 10 percent [yourPk] from [yourtable] order by newid())</code>
Diese Methode funktioniert in zwei Schritten: Wählen Sie zunächst zufällige Primärschlüsselwerte aus und verwenden Sie dann diese Primärschlüsselwerte, um die entsprechenden Zeilen abzurufen. Es gleicht die Kosten für Schlüsselscan und Join aus und macht es bei großen Tabellen effizienter.
Das obige ist der detaillierte Inhalt vonWie kann ich effizient eine Zufallsstichprobe von Zeilen aus einer SQL Server-Tabelle auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!