Megosztás a következőn keresztül:


PARTITION SCHEME LÉTREHOZÁSA (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Létrehoz egy sémát az aktuális adatbázisban, amely leképozza egy particionált tábla vagy index partícióit egy vagy több fájlcsoportra. A tábla vagy index sorait partíciókra leképelő értékek egy partíciófüggvényben vannak megadva. A partíciófüggvényeket először egy CREATE PARTITION FUNCTION utasításban kell létrehozni a partíciós séma létrehozása előtt.

Jegyzet

Az Azure SQL Database-ben és SQL adatbázisban a Microsoft Fabric-ben csak az elsődleges fájlcsoportok támogatottak. További információ a Filegroupsfájlcsoportjairól és particionálási stratégiáiról.

Transact-SQL szintaxis konvenciói

Szintaxis

CREATE PARTITION SCHEME partition_scheme_name
AS PARTITION partition_function_name
[ ALL ] TO ( { file_group_name | [ PRIMARY ] } [ , ...n ] )
[ ; ]

Érvek

partition_scheme_name

A partícióséma neve. A partíciósémák nevének egyedinek kell lennie az adatbázisban, és meg kell felelnie azonosítókszabályainak.

partition_function_name

A partíciósémát használó partíciófüggvény neve. A partíciófüggvény által létrehozott partíciók a partíciós sémában megadott fájlcsoportokhoz vannak leképezve. partition_function_name már léteznie kell az adatbázisban. Egyetlen partíció nem tartalmazhat FILESTREAM- és nem FILESTREAM-fájlcsoportokat.

ÖSSZES

Megadja, hogy az összes partíció megfelelteti a file_group_namemegadott fájlcsoportot vagy az elsődleges fájlcsoportot, ha [PRIMARY] van megadva. Ha ALL van megadva, csak egy file_group_name lehet megadni.

file_group_name | [ ELSŐDLEGES ] [ , ...n ]

Megadja a partition_function_nameáltal megadott partíciók tárolására használt fájlcsoportok nevét. file_group_name már léteznie kell az adatbázisban.

Ha [PRIMARY] van megadva, a partíció az elsődleges fájlcsoportban lesz tárolva. Ha ALL van megadva, csak egy file_group_name lehet megadni. A partíciók fájlcsoportokhoz vannak rendelve, az 1. partíciótól kezdve abban a sorrendben, amelyben a fájlcsoportok a [, ...<n>]listában szerepelnek. Ugyanaz a file_group_name több alkalommal is megadható [, ...<n>]. Ha n nem elegendő a partition_function_namemegadott partíciók tárolásához, CREATE PARTITION SCHEME hiba miatt meghiúsul.

Ha partition_function_name kevesebb partíciót hoz létre, mint a fájlcsoportok, az első hozzárendeletlen fájlcsoport NEXT USEDlesz megjelölve, és egy információs üzenet jeleníti meg a NEXT USED fájlcsoport elnevezését. Ha ALL van megadva, az egyetlen file_group_name fenntartja a NEXT USED tulajdonságát. A NEXT USED fájlcsoport további partíciót kap, ha egy ALTER PARTITION FUNCTION utasításban jön létre. Ha több hozzárendeletlen fájlcsoportot szeretne létrehozni az új partíciók tárolásához, használja a ALTER PARTITION SCHEME.

Ha az elsődleges fájlcsoportot <file_group_name> [, ...<n>]adja meg, PRIMARY el kell tagolást végezni, ahogyan az [PRIMARY]esetében is, mivel ez egy kulcsszó.

Az SQL Database csak PRIMARY támogatott. Lásd E.

Engedélyek

A következő engedélyek használhatók a CREATE PARTITION SCHEMEvégrehajtásához:

  • ALTER ANY DATASPACE engedélyt. Ez az engedély alapértelmezés szerint a sysadmin rögzített kiszolgálói szerepkör, valamint a rögzített adatbázis-szerepkörök db_owner és db_ddladmin.

  • CONTROL vagy ALTER engedélyt arra az adatbázisra, amelyben a partícióséma létrejön.

  • CONTROL SERVER vagy ALTER ANY DATABASE engedélyt annak az adatbázisnak a kiszolgálóján, amelyben a partícióséma létrejön.

Példák

Egy. Partícióséma létrehozása, amely az egyes partíciókat egy másik fájlcsoporthoz rendeli

Az alábbi példa egy partíciófüggvényt hoz létre egy tábla vagy index négy partícióra való particionálásához. Ezután létrejön egy partíciós séma, amely meghatározza a négy partíció mindegyikét tartalmazó fájlcsoportokat. Ez a példa feltételezi, hogy a fájlcsoportok már léteznek az adatbázisban.

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);

A particionálási oszlopon myRangePF1 partíciófüggvényt használó tábla partíciói col1 az alábbi táblázatban látható módon lesznek hozzárendelve.

Fájlcsoport Feloszt Értékrend
test1fg 1 col1 <= 1
test2fg 2 col1 > 1 ÉS col1<= 100
test3fg 3 col1 > 100 ÉS col1<= 1000
test4fg 4 col1 > 1000

B. Hozzon létre egy partíciós sémát, amely több partíciót képez le ugyanarra a fájlcsoportra

Ha az összes partíció ugyanarra a fájlcsoportra van leképezve, használja a ALL kulcsszót. Ha azonban több, de nem mindegyik partíciót képeznek ugyanarra a fájlcsoportra, a fájlcsoport nevét meg kell ismételni, ahogy az az alábbi példában is látható.

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);

A particionálási oszlopon myRangePF2 partíciófüggvényt használó tábla partíciói col1 az alábbi táblázatban látható módon lesznek hozzárendelve.

Fájlcsoport Feloszt Értékrend
test1fg 1 col1 <= 1
test1fg 2 col1 > 1 ÉS col1<= 100
test1fg 3 col1 > 100 ÉS col1<= 1000
test2fg 4 col1 > 1000

C. Hozzon létre egy partíciós sémát, amely minden partíciót ugyanarra a fájlcsoportra képez le

Az alábbi példa ugyanazt a partíciófüggvényt hozza létre, mint az előző példákban, és létrejön egy partíciós séma, amely minden partíciót ugyanarra a fájlcsoportra képez le.

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. A NEXT USED fájlcsoportot meghatározó partíciós séma létrehozása

Az alábbi példa ugyanazt a partíciófüggvényt hozza létre, mint az előző példákban. Emellett létrehoz egy partíciós sémát, amely a társított partíciófüggvény által létrehozott partícióknál több fájlcsoportot sorol fel.

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);

Az utasítás végrehajtása a következő üzenetet adja vissza.

Partition scheme 'myRangePS4' has been created successfully. 'test5fg' is marked as the next used filegroup in partition scheme 'myRangePS4'.

Ha a partíciófüggvény myRangePF4 partíció hozzáadására módosul, a fájlcsoport test5fg megkapja az újonnan létrehozott partíciót.

E. Partícióséma létrehozása csak AZ ELSŐDLEGES rendszeren

Az Azure SQL Database-ben és SQL adatbázisban a Microsoft Fabric-ben nem támogatott fájlok és fájlcsoportok hozzáadása, de a táblázat partícióját csak a PRIMARY fájlcsoport között osztják fel.

Az alábbi példa egy partíciófüggvényt hoz létre egy tábla vagy index négy partícióra való particionálásához. Ezután létrejön egy partíciós séma, amely megadja, hogy az összes partíció a PRIMARY fájlcsoportban legyen létrehozva.

CREATE PARTITION FUNCTION myRangePF1(INT)
AS RANGE LEFT FOR VALUES (1, 100, 1000);
GO

CREATE PARTITION SCHEME myRangePS1
AS PARTITION myRangePF1
ALL TO ([PRIMARY]);