Heim > Datenbank > MySQL-Tutorial > Wie unterscheiden sich die Klauseln „PARTITION BY' und „KEEP' bei der Datenpartitionierung von Oracle?

Wie unterscheiden sich die Klauseln „PARTITION BY' und „KEEP' bei der Datenpartitionierung von Oracle?

Linda Hamilton
Freigeben: 2024-12-25 05:19:17
Original
162 Leute haben es durchsucht

How do `PARTITION BY` and `KEEP` clauses differ in Oracle's data partitioning?

PARTITION BY mit und ohne KEEP in Oracle

Beim Partitionieren von Daten in Oracle stehen zwei Hauptoptionen zur Verfügung: PARTITION BY und KEEP. Beide Optionen können verwendet werden, um Daten in kleinere Teilmengen zu gruppieren, haben jedoch unterschiedliche Auswirkungen auf die resultierenden Daten.

PARTITION BY

Die PARTITION BY-Klausel wird zum Teilen verwendet Eine Tabelle in kleinere Partitionen basierend auf einer oder mehreren Spalten. Die Daten in jeder Partition werden getrennt von den Daten in anderen Partitionen gespeichert. Dies kann die Leistung für bestimmte Arten von Abfragen verbessern, z. B. Abfragen, die Daten nach einem bestimmten Spaltenwert filtern.

Beispielsweise verwendet die folgende Abfrage die PARTITION BY-Klausel, um die Empl-Tabelle basierend auf der Abteilungsnummer in Partitionen zu unterteilen Spalte:

SELECT empno,
       deptno,
       sal,
       MIN(sal) OVER (PARTITION BY deptno) AS "Lowest",
       MAX(sal) OVER (PARTITION BY deptno) AS "Highest"
FROM empl;
Nach dem Login kopieren

Diese Abfrage gibt das niedrigste und höchste Gehalt für jede Abteilung zurück. Die Daten für jede Abteilung werden in einer separaten Partition gespeichert, was die Leistung für Abfragen verbessert, die Daten nach Abteilung filtern.

KEEP

Die KEEP-Klausel wird verwendet, um Geben Sie an, welche Zeilen von jeder Partition beibehalten werden sollen. Die KEEP-Klausel kann entweder mit der PARTITION BY-Klausel oder der DISTINCT-Klausel verwendet werden.

Bei Verwendung mit der PARTITION BY-Klausel gibt die KEEP-Klausel an, welche Zeilen von jeder Partition beibehalten werden sollen. Die folgende Abfrage verwendet beispielsweise die KEEP-Klausel, um nur die erste Zeile jeder Partition zu behalten:

SELECT empno,
       deptno,
       sal,
       MIN(sal) OVER (PARTITION BY deptno) AS "Lowest",
       MAX(sal) OVER (PARTITION BY deptno) AS "Highest"
FROM empl
KEEP (DENSE_RANK FIRST ORDER BY sal) OVER (PARTITION BY deptno);
Nach dem Login kopieren

Diese Abfrage gibt das niedrigste und höchste Gehalt für jede Abteilung zurück, aber nur die erste Zeile von jeder Partition. Dies kann für Abfragen nützlich sein, die eine begrenzte Anzahl von Zeilen zurückgeben müssen, oder für Abfragen, die Daten in einer bestimmten Reihenfolge zurückgeben müssen.

Unterschied zwischen PARTITION BY und KEEP

Der Hauptunterschied zwischen PARTITION BY und KEEP besteht darin, dass PARTITION BY die Daten in kleinere Partitionen aufteilt, während KEEP angibt, welche Zeilen von jeder Partition beibehalten werden sollen. PARTITION BY kann verwendet werden, um die Leistung für bestimmte Abfragetypen zu verbessern, während KEEP verwendet werden kann, um die Anzahl der von einer Abfrage zurückgegebenen Zeilen zu begrenzen oder Daten in einer bestimmten Reihenfolge zurückzugeben.

Das obige ist der detaillierte Inhalt vonWie unterscheiden sich die Klauseln „PARTITION BY' und „KEEP' bei der Datenpartitionierung von Oracle?. 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