Heim > Datenbank > MySQL-Tutorial > Wie kann ich effizient eine Zufallsstichprobe von Zeilen aus einer SQL Server-Tabelle auswählen?

Wie kann ich effizient eine Zufallsstichprobe von Zeilen aus einer SQL Server-Tabelle auswählen?

Patricia Arquette
Freigeben: 2025-01-19 08:02:14
Original
731 Leute haben es durchsucht

Zufällige Zeilen effizient aus SQL Server-Tabellen extrahieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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.

How Can I Efficiently Select a Random Sample of Rows from a SQL Server Table?

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage