CREATE PARTITION SCHEME (Transact-SQL)
platí pro:SQL ServerAzure SQL Databaseazure SQL Managed Instance
Vytvoří schéma v aktuální databázi, které mapuje oddíly dělené tabulky nebo indexu na jednu nebo více skupin souborů. Hodnoty, které mapují řádky tabulky nebo indexu na oddíly, se zadají ve funkci oddílu. Před vytvořením schématu oddílů musí být nejprve vytvořena funkce CREATE PARTITION FUNCTION příkaz.
Poznámka
Ve službě Azure SQL Database se podporují pouze primární skupiny souborů. Přečtěte si další informace o skupinách souborů a strategiích dělení v souborových skupin.
Syntax
CREATE PARTITION SCHEME partition_scheme_name
AS PARTITION partition_function_name
[ ALL ] TO ( { file_group_name | [ PRIMARY ] } [ , ...n ] )
[ ; ]
Argumenty
partition_scheme_name
Název schématu oddílů. Názvy schémat oddílů musí být v databázi jedinečné a musí být v souladu s pravidly pro identifikátory .
partition_function_name
Název funkce oddílu pomocí schématu oddílů. Oddíly vytvořené funkcí oddílu se mapují na skupiny souborů zadané v schématu oddílů. partition_function_name už musí v databázi existovat. Jeden oddíl nemůže obsahovat skupiny souborů FILESTREAM i jiné než FILESTREAM.
VŠICHNI
Určuje, že všechny oddíly se mapují na skupinu souborů uvedenou v file_group_namenebo do primární skupiny souborů, pokud je zadána [PRIMARY]
. Pokud je zadán ALL
, lze zadat pouze jeden file_group_name.
file_group_name | [ PRIMÁRNÍ ] [ , ...n ]
Určuje názvy skupin souborů, které mají obsahovat oddíly určené partition_function_name. file_group_name již musí existovat v databázi.
Pokud je zadán [PRIMARY]
, oddíl se uloží do primární skupiny souborů. Pokud je zadán ALL
, lze zadat pouze jeden file_group_name. Oddíly jsou přiřazeny ke skupinám souborů počínaje oddílem 1 v pořadí, v jakém jsou skupiny souborů uvedeny v [, ...<n>]
. Stejný file_group_name lze v [, ...<n>]
zadat vícekrát . Pokud n nestačí k uložení počtu oddílů zadaných v partition_function_name, CREATE PARTITION SCHEME
selže s chybou.
Pokud partition_function_name generuje méně oddílů než skupina souborů, označí se první nepřiřazená skupina souborů NEXT USED
a informační zpráva zobrazí pojmenování skupiny souborů NEXT USED
. Je-li zadán ALL
, jediný file_group_name udržuje jeho NEXT USED
vlastnost pro tento partition_function_name. Skupina souborů NEXT USED
obdrží další oddíl, pokud se vytvoří v příkazu ALTER PARTITION FUNCTION
. Pokud chcete vytvořit více nepřiřazených skupin souborů pro uložení nových oddílů, použijte ALTER PARTITION SCHEME
.
Když v <file_group_name> [, ...<n>]
zadáte primární skupinu souborů , musí být PRIMARY
oddělená, jako v [PRIMARY]
, protože se jedná o klíčové slovo.
Sql Database podporuje jenom PRIMARY
. Viz příklad E.
Dovolení
Ke spuštění CREATE PARTITION SCHEME
lze použít následující oprávnění:
ALTER ANY DATASPACE
oprávnění. Toto oprávnění ve výchozím nastavení platí pro členy správce systému pevnou roli serveru a db_owner a db_ddladmin pevné databázové role.CONTROL
neboALTER
oprávnění k databázi, ve které se schéma oddílů vytváří.CONTROL SERVER
neboALTER ANY DATABASE
oprávnění na serveru databáze, ve které se schéma oddílů vytváří.
Příklady
A. Vytvoření schématu oddílů, které mapuje jednotlivé oddíly na jinou skupinu souborů
Následující příklad vytvoří funkci oddílu pro rozdělení tabulky nebo indexu do čtyř oddílů. Potom se vytvoří schéma oddílů, které určuje skupiny souborů, které mají obsahovat každý ze čtyř oddílů. Tento příklad předpokládá, že skupiny souborů již v databázi existují.
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);
Oddíly tabulky, která používá funkci oddílu myRangePF1
pro dělení sloupců col1
, by se přiřadily, jak je znázorněno v následující tabulce.
Skupina souborů | Oddíl | Hodnoty |
---|---|---|
test1fg |
1 |
col1
<= 1 |
test2fg |
2 |
col1
>
1 AND col1 <= 100 |
test3fg |
3 |
col1
>
100 AND col1 <= 1000 |
test4fg |
4 | col1 > 1000 |
B. Vytvoření schématu oddílů, které mapuje více oddílů na stejnou skupinu souborů
Pokud se všechny oddíly mapují na stejnou skupinu souborů, použijte klíčové slovo ALL
. Pokud je ale více, ale ne všechny, oddíly se mapují na stejnou skupinu souborů, musí se název skupiny souborů opakovat, jak je znázorněno v následujícím příkladu.
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);
Oddíly tabulky, která používá funkci oddílu myRangePF2
pro dělení sloupců col1
, by se přiřadily, jak je znázorněno v následující tabulce.
Skupina souborů | Oddíl | Hodnoty |
---|---|---|
test1fg |
1 |
col1
<= 1 |
test1fg |
2 |
col1
>
1 AND col1 <= 100 |
test1fg |
3 |
col1
>
100 AND col1 <= 1000 |
test2fg |
4 | col1 > 1000 |
C. Vytvoření schématu oddílů, které mapuje všechny oddíly na stejnou skupinu souborů
Následující příklad vytvoří stejnou funkci oddílu jako v předchozích příkladech a vytvoří se schéma oddílů, které mapuje všechny oddíly na stejnou skupinu souborů.
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. Vytvoření schématu oddílů, které určuje skupinu souborů NEXT USED
Následující příklad vytvoří stejnou funkci oddílu jako v předchozích příkladech. Vytvoří také schéma oddílů, které obsahuje více skupin souborů, než jsou oddíly vytvořené přidruženou funkcí oddílu.
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);
Spuštění příkazu vrátí následující zprávu.
Partition scheme 'myRangePS4' has been created successfully. 'test5fg' is marked as the next used filegroup in partition scheme 'myRangePS4'.
Pokud myRangePF4
funkce oddílu změníte na přidání oddílu, skupina souborů test5fg
obdrží nově vytvořený oddíl.
E. Vytvoření schématu oddílů pouze u primárního
Ve službě Azure SQL Database není přidávání souborů a skupin souborů podporováno, ale dělení tabulek je podporováno dělením napříč pouze PRIMARY
skupinami souborů.
Následující příklad vytvoří funkci oddílu pro rozdělení tabulky nebo indexu do čtyř oddílů. Potom se vytvoří schéma oddílů, které určuje, že se všechny oddíly vytvoří ve skupině souborů PRIMARY
.
CREATE PARTITION FUNCTION myRangePF1(INT)
AS RANGE LEFT FOR VALUES (1, 100, 1000);
GO
CREATE PARTITION SCHEME myRangePS1
AS PARTITION myRangePF1
ALL TO ([PRIMARY]);
Související obsah
- CREATE PARTITION FUNCTION (Transact-SQL)
- dělené tabulky a indexy
- Úprava funkce oddílu
- Úprava schématu oddílů
-
sys.partition_functions (Transact-SQL) -
sys.partition_schemes (Transact-SQL)