MEMBUAT SKEMA PARTISI (Transact-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Membuat skema dalam database saat ini yang memetakan partisi tabel atau indeks yang dipartisi ke satu atau beberapa grup file. Nilai yang memetakan baris tabel atau indeks ke dalam partisi ditentukan dalam fungsi partisi. Fungsi partisi harus terlebih dahulu dibuat dalam pernyataan CREATE PARTITION FUNCTION sebelum membuat skema partisi.
Catatan
Di Azure SQL Database hanya grup file utama yang didukung. Pelajari selengkapnya tentang grup file dan strategi pemartisian di Filegroups.
Sintaks
CREATE PARTITION SCHEME partition_scheme_name
AS PARTITION partition_function_name
[ ALL ] TO ( { file_group_name | [ PRIMARY ] } [ ,...n ] )
[ ; ]
Argumen
partition_scheme_name
Adalah nama skema partisi. Nama skema partisi harus unik dalam database dan mematuhi aturan untuk pengidentifikasi.
partition_function_name
Adalah nama fungsi partisi menggunakan skema partisi. Partisi yang dibuat oleh fungsi partisi dipetakan ke grup file yang ditentukan dalam skema partisi. partition_function_name harus sudah ada di database. Partisi tunggal tidak boleh berisi grup file FILESTREAM dan non-FILESTREAM.
SEMUA
Menentukan bahwa semua partisi dipetakan ke grup file yang disediakan dalam file_group_name, atau ke grup file utama jika [PRIMARY] ditentukan. Jika ALL ditentukan, hanya satu file_group_name yang dapat ditentukan.
file_group_name[ PRIMER ] [ , , ... | n]
Menentukan nama grup file untuk menahan partisi yang ditentukan oleh partition_function_name. file_group_name harus sudah ada di database.
Jika [PRIMARY] ditentukan, partisi disimpan pada grup file utama. Jika ALL ditentukan, hanya satu file_group_name yang dapat ditentukan. Partisi ditetapkan ke grup file, dimulai dengan partisi 1, dalam urutan di mana grup file tercantum di [ , ... n]. File_group_name yang sama dapat ditentukan lebih dari satu kali dalam [ ,... n]. Jika n tidak cukup untuk menahan jumlah partisi yang ditentukan dalam partition_function_name, CREATEPARTITION SCHEME gagal dengan kesalahan.
Jika partition_function_name menghasilkan lebih sedikit partisi daripada grup file, grup file pertama yang tidak ditetapkan ditandai NEXT USED, dan pesan informasi menampilkan penamaan grup file NEXT USED. Jika ALL ditentukan, satu-satunya file_group_name mempertahankan properti NEXT USED untuk partition_function_name ini. Grup file NEXT USED akan menerima partisi tambahan jika dibuat dalam pernyataan ALTER PARTITION FUNCTION. Untuk membuat grup file tambahan yang tidak ditetapkan untuk menyimpan partisi baru, gunakan ALTER PARTITION SCHEME.
Ketika Anda menentukan grup file utama di file_group_name [ ,... n], PRIMARY harus dibatasi, seperti dalam [PRIMARY], karena merupakan kata kunci.
Hanya PRIMARY yang didukung untuk SQL Database. Contohnya di bawah.
Izin
Izin berikut dapat digunakan untuk menjalankan CREATE PARTITION SCHEME:
- Izin ALTER ANY DATASPACE. Izin ini default untuk anggota peran server tetap sysadmin dan peran database tetap db_owner dan db_ddladmin .
- IZIN CONTROL atau ALTER pada database tempat skema partisi sedang dibuat.
- IZIN CONTROL SERVER atau ALTER ANY DATABASE di server database tempat skema partisi sedang dibuat.
Contoh
J. Membuat skema partisi yang memetakan setiap partisi ke grup file yang berbeda
Contoh berikut membuat fungsi partisi untuk mempartisi tabel atau indeks menjadi empat partisi. Skema partisi kemudian dibuat yang menentukan grup file untuk menahan masing-masing dari empat partisi. Contoh ini mengasumsikan grup file sudah ada dalam database.
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);
Partisi tabel yang menggunakan fungsi myRangePF1
partisi pada partisi kolom col1 akan ditetapkan seperti yang ditunjukkan dalam tabel berikut.
Grup file | Partisi | Nilai |
---|---|---|
test1fg |
1 | col1<= 1 |
test2fg |
2 | col1>1 AND col1<= 100 |
test3fg |
3 | col1>100 AND col1<= 1000 |
test4fg |
4 | col1>1000 |
B. Membuat skema partisi yang memetakan beberapa partisi ke grup file yang sama
Jika semua partisi dipetakan ke grup file yang sama, gunakan kata kunci SEMUA. Tetapi jika beberapa, tetapi tidak semua, partisi dipetakan ke grup file yang sama, nama grup file harus diulang, seperti yang ditunjukkan dalam contoh berikut.
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 );
Partisi tabel yang menggunakan fungsi myRangePF2
partisi pada partisi kolom col1 akan ditetapkan seperti yang ditunjukkan dalam tabel berikut.
Grup file | Partisi | Nilai |
---|---|---|
test1fg |
1 | col1<= 1 |
test1fg |
2 | col1>1 AND col1<= 100 |
test1fg |
3 | col1>100 AND col1<= 1000 |
test2fg |
4 | col1>1000 |
C. Membuat skema partisi yang memetakan semua partisi ke grup file yang sama
Contoh berikut membuat fungsi partisi yang sama seperti pada contoh sebelumnya, dan skema partisi dibuat yang memetakan semua partisi ke grup file yang sama.
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. Membuat skema partisi yang menentukan grup file 'NEXT USED'
Contoh berikut membuat fungsi partisi yang sama seperti pada contoh sebelumnya, dan skema partisi dibuat yang mencantumkan lebih banyak grup file daripada ada partisi yang dibuat oleh fungsi partisi terkait.
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)
Menjalankan pernyataan mengembalikan pesan berikut.
Skema partisi 'myRangePS4' telah berhasil dibuat. 'test5fg' ditandai sebagai grup file yang digunakan berikutnya dalam skema partisi 'myRangePS4'.
Jika fungsi myRangePF4
partisi diubah untuk menambahkan partisi, grup file test5fg
menerima partisi yang baru dibuat.
E. Membuat skema partisi hanya di PRIMARY
Di Azure SQL Database, menambahkan file dan grup file tidak didukung, tetapi pemartisian tabel didukung oleh pemartisian di seluruh grup file PRIMER saja.
Contoh berikut membuat fungsi partisi untuk mempartisi tabel atau indeks menjadi empat partisi. Skema partisi kemudian dibuat yang menentukan bahwa semua partisi dibuat dalam grup file PRIMER.
CREATE PARTITION FUNCTION myRangePF1 (INT)
AS RANGE LEFT FOR VALUES (1, 100, 1000);
GO
CREATE PARTITION SCHEME myRangePS1
AS PARTITION myRangePF1
ALL TO ( [PRIMARY] );
Langkah berikutnya
Pelajari selengkapnya tentang pemartisian tabel dan konsep terkait dalam artikel berikut ini: