CREATE PARTITION SCHEME (Transact-SQL)
Erstellt ein Schema in der aktuellen Datenbank, das die Partitionen einer partitionierten Tabelle oder eines partitionierten Indexes Dateigruppen zuordnet. Die Anzahl und die Domäne der Partitionen einer partitionierten Tabelle oder eines partitionierten Indexes werden in einer Partitionsfunktion bestimmt. Eine Partitionsfunktion muss zunächst in einer CREATE PARTITION FUNCTION-Anweisung erstellt werden, bevor ein Partitionsschema erstellt wird.
Die folgenden Berechtigungen können für CREATE PARTITION SCHEME verwendet werden:
-
ALTER ANY DATASPACE-Berechtigung. Diese Berechtigung gilt standardmäßig für Mitglieder der festen Serverrolle sysadmin und für Mitglieder der festen Datenbankrollen db_owner und db_ddladmin.
-
CONTROL- oder ALTER-Berechtigung für die Datenbank, in der das Partitionsschema erstellt wird.
-
CONTROL SERVER- oder ALTER ANY DATABASE-Berechtigung für den Server der Datenbank, in der das Partitionsschema erstellt wird.
A. Erstellen eines Partitionsschemas, mit dem jede Partition einer anderen Dateigruppe zugeordnet wird
Im folgenden Beispiel wird eine Partitionsfunktion erstellt, um eine Tabelle oder einen Index in vier Partitionen zu partitionieren. Es wird ein Partitionsschema erstellt, das die Dateigruppen zum Speichern der vier Partitionen angibt. In diesem Beispiel wird davon ausgegangen, dass die Dateigruppen bereits in der Datenbank vorhanden sind.
CREATE PARTITION FUNCTION myRangePF1 (int) AS RANGE LEFT FOR VALUES (1, 100, 1000); GO CREATE PARTITION SCHEME myRangePS1 AS PARTITION myRangePF1 TO (test1fg, test2fg, test3fg, test4fg);
Die Partitionen einer Tabelle, die die myRangePF1-Partitionsfunktionen zum Partitionieren der col1-Spalte verwendet, würden zugewiesen, wie in der folgenden Tabelle gezeigt.
Dateigruppe | test1fg | test2fg | test3fg | test4fg |
Partition | 1 | 2 | 3 | 4 |
Werte | col1 <= 1 | col1 > 1 AND col1 <= 100 | col1 > 100 AND col1 <= 1000 | col1 > 1000 |
B. Erstellen eines Partitionsschemas, mit dem mehrere Partitionen derselben Dateigruppe zugeordnet werden
Verwenden Sie das ALL-Schlüsselwort, wenn alle Partitionen derselben Dateigruppe zugeordnet werden. Falls aber mehrere, jedoch nicht alle Partitionen derselben Dateigruppe zugeordnet werden, muss der Dateigruppenname wiederholt werden, wie im folgenden Beispiel gezeigt.
CREATE PARTITION FUNCTION myRangePF2 (int) AS RANGE LEFT FOR VALUES (1, 100, 1000); GO CREATE PARTITION SCHEME myRangePS2 AS PARTITION myRangePF2 TO ( test1fg, test1fg, test1fg, test2fg );
Die Partitionen einer Tabelle, die die myRangePF2-Partitionsfunktionen zum Partitionieren der col1-Spalte verwendet, würden zugewiesen, wie in der folgenden Tabelle gezeigt.
Dateigruppe | test1fg | test1fg | test1fg | test2fg |
Partition | 1 | 2 | 3 | 4 |
Werte | col1 <= 1 | col1 > 1 AND col1 <= 100 | col1 > 100 AND col1 <= 1000 | col1 > 1000 |
C. Erstellen eines Partitionsschemas, mit dem alle Partitionen derselben Dateigruppe zugeordnet werden
Im folgenden Beispiel wird dieselbe Partitionsfunktion wie in den vorherigen Beispielen erstellt, und ein Partitionsschema wird erstellt, mit dem alle Partitionen derselben Dateigruppe zugeordnet werden.
CREATE PARTITION FUNCTION myRangePF3 (int) AS RANGE LEFT FOR VALUES (1, 100, 1000); GO CREATE PARTITION SCHEME myRangePS3 AS PARTITION myRangePF3 ALL TO ( test1fg );
D. Erstellen eines Partitionsschemas, mit dem die Dateigruppe 'NEXT USED' angegeben wird
Im folgenden Beispiel wird dieselbe Partitionsfunktion wie in den vorherigen Beispielen erstellt, und ein Partitionsschema wird erstellt, das mehr Dateigruppen auflistet, als Partitionen von der zugehörigen Partitionsfunktionen erstellt werden.
CREATE PARTITION FUNCTION myRangePF4 (int) AS RANGE LEFT FOR VALUES (1, 100, 1000); GO CREATE PARTITION SCHEME myRangePS4 AS PARTITION myRangePF4 TO (test1fg, test2fg, test3fg, test4fg, test5fg)
Beim Ausführen der Anweisung wird die folgende Meldung zurückgegeben.
Partition scheme 'myRangePS4' has been created successfully. 'test5fg' is marked as the next used filegroup in partition scheme 'myRangePS4'.
Falls die myRangePF4-Partitionsfunktion geändert wird, um eine Partition hinzuzufügen, erhält die test5fg-Dateigruppe die neu erstellte Partition.