Heim > Datenbank > MySQL-Tutorial > Wann und warum wird „SELECT TOP 100 PERCENT' in SQL Server verwendet?

Wann und warum wird „SELECT TOP 100 PERCENT' in SQL Server verwendet?

Patricia Arquette
Freigeben: 2025-01-02 22:30:39
Original
614 Leute haben es durchsucht

When and Why Use `SELECT TOP 100 PERCENT` in SQL Server?

Verwendung von TOP 100 PERCENT in SQL Server

Vor SQL Server 2005 konnte die SELECT TOP 100 PERCENT-Klausel als Trick verwendet werden um die Verwendung einer ORDER BY-Klausel in Ansichtsdefinitionen zu erzwingen. Seine Verwendung geht jedoch über Ansichtsdefinitionen in dynamischen SQL-Anweisungen in verschiedenen Anwendungen hinaus.

Zwischenmaterialisierung

Der Hauptzweck von SELECT TOP 100 PERCENT in dynamischem SQL ist für „ Zwischenmaterialisierung. Bei dieser Technik wird vor der endgültigen Abfrageausführung eine Zwischentabelle oder ein Abfrageergebnis als temporärer Speicher erstellt. Durch die Verwendung von TOP 100 PERCENT wird der temporäre Speicher mit allen Zeilen aus der ursprünglichen Abfrage materialisiert, wodurch sichergestellt wird, dass die Reihenfolge der Zeilen erhalten bleibt.

Arbeitsbeispiel

Bedenken Sie das Folgende Abfrage:

SELECT foo
FROM MyTable
WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100
Nach dem Login kopieren

Diese Abfrage kann aufgrund der unbestimmten Auswertungsreihenfolge zwischen WHERE und ORDER BY fehlschlagen Klauseln. Bei Verwendung von TOP 100 PERCENT funktioniert jedoch die folgende Abfrage:

SELECT foo
FROM
    (SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
    CAST(foo AS int) > 100
Nach dem Login kopieren

In SQL Server 2000 und früher erzwang diese Technik die Materialisierung der inneren Abfrage, um sicherzustellen, dass die Zeilenreihenfolge erhalten blieb. Das gleiche Verhalten tritt immer noch in SQL Server 2005 auf.

Es ist jedoch wichtig zu beachten, dass eine übermäßige Verwendung von TOP 100 PERCENT Auswirkungen auf die Leistung haben kann und nur verwendet werden sollte, wenn dies unbedingt erforderlich ist. Wenn möglich, ist es vorzuziehen, sich für die Zeilenreihenfolge auf explizite Tabellenpartitionierung oder gespeicherte Prozeduren zu verlassen.

Das obige ist der detaillierte Inhalt vonWann und warum wird „SELECT TOP 100 PERCENT' in SQL Server verwendet?. 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