MEMBUAT SKEMA PARTISI (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure 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.

Konvensi sintaks transact-SQL

Sintaksis

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

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

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: