Sdílet prostřednictvím


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.

Transact-SQL konvence syntaxe

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 USEDa 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 SCHEMElze 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 nebo ALTER oprávnění k databázi, ve které se schéma oddílů vytváří.

  • CONTROL SERVER nebo ALTER 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]);