Bagikan melalui


Buat tabel dan indeks yang dipartisi

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Anda dapat membuat tabel atau indeks yang dipartisi di SQL Server, Azure SQL Database, dan Azure SQL Managed Instance dengan menggunakan SQL Server Management Studio atau Transact-SQL. Data dalam tabel dan indeks yang dipartisi dibagi secara horizontal menjadi satuan yang dapat tersebar di lebih dari satu grup file dalam database, atau disimpan dalam satu grup file. Pemartisian dapat membuat tabel dan indeks besar lebih mudah dikelola dan dapat diskalakan.

Membuat tabel atau indeks yang dipartisi biasanya terjadi dalam tiga atau empat bagian:

  1. Secara opsional buat grup file atau grup file dan file data terkait yang akan menyimpan partisi yang ditentukan oleh skema partisi. Alasan utama untuk menempatkan partisi pada beberapa grup file adalah untuk memastikan Anda dapat melakukan operasi pencadangan dan pemulihan secara independen pada grup file. Jika ini tidak diperlukan, Anda dapat memilih untuk menetapkan semua partisi ke grup file tunggal, menggunakan grup file yang ada, seperti PRIMARY, atau grup file baru dengan file data terkait. Dalam hampir semua skenario, Anda akan mencapai semua manfaat pemartisian apakah Anda menggunakan beberapa grup file atau tidak.

  2. Buat fungsi partisi yang memetakan baris tabel atau indeks ke dalam partisi berdasarkan nilai kolom tertentu. Anda dapat menggunakan fungsi partisi tunggal untuk mempartisi beberapa objek.

  3. Buat skema partisi yang memetakan partisi tabel atau indeks yang dipartisi ke satu grup file atau ke beberapa grup file. Anda dapat menggunakan skema partisi tunggal untuk mempartisi beberapa objek.

  4. Buat atau ubah tabel atau indeks dan tentukan skema partisi sebagai lokasi penyimpanan, bersama dengan kolom yang akan berfungsi sebagai kolom pemartisian.

Catatan

Partisi didukung penuh di Azure SQL Database. Karena hanya PRIMARY grup file yang didukung di Azure SQL Database, semua partisi harus ditempatkan pada PRIMARY grup file.

Pemartisian tabel juga tersedia di kumpulan SQL khusus di Azure Synapse Analytics, dengan beberapa perbedaan sintaksis. Pelajari selengkapnya di Tabel partisi di kumpulan SQL khusus.

Izin

Membuat tabel yang dipartisi memerlukan izin CREATE TABLE dalam database dan izin UBAH pada skema tempat tabel sedang dibuat. Membuat indeks yang dipartisi memerlukan izin UBAH pada tabel atau tampilan tempat indeks sedang dibuat. Membuat tabel atau indeks yang dipartisi memerlukan salah satu izin tambahan berikut:

  • 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 fungsi partisi dan skema partisi sedang dibuat.

  • IZIN CONTROL SERVER atau ALTER ANY DATABASE di server database tempat fungsi partisi dan skema partisi sedang dibuat.

Membuat tabel yang dipartisi pada satu grup file menggunakan Transact-SQL

Jika Anda tidak perlu melakukan operasi pencadangan dan pemulihan secara independen pada grup file, mempartisi tabel menggunakan grup file tunggal menyederhanakan manajemen tabel yang dipartisi dari waktu ke waktu.

Contoh ini cocok untuk Azure SQL Database, yang tidak mendukung penambahan file dan grup file. Pemartisian tabel didukung di Azure SQL Database dengan membuat partisi di PRIMARY grup file. Untuk SQL Server dan Azure SQL Managed Instance, Anda mungkin ingin menentukan grup file yang dibuat pengguna, tergantung pada grup file dan praktik manajemen file Anda.

Contoh langkah-langkah dalam membuat tabel yang dipartisi di SQL Server Management Studio (SSMS) menggunakan Transact-SQL dan menetapkan semua partisi ke PRIMARY grup file. Contohnya:

  • Membuat fungsi myRangePF1 partisi RANGE RIGHT bernama dengan tiga nilai batas menggunakan jenis data datetime2. Tiga nilai batas akan menghasilkan tabel yang dipartisi dengan empat partisi.
  • Membuat skema partisi bernama myRangePS1 yang menggunakan ALL TO sintaks untuk menetapkan semua partisi dalam myRangePF1 fungsi partisi ke PRIMARY grup file.
  • Membuat tabel bernama PartitionTable pada myRangePS1 skema partisi, menentukan kolom bernama col1 sebagai kolom partisi.
  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar, pilih Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan. Contoh ini membuat fungsi partisi dan skema partisi. Tabel baru dibuat dengan skema partisi yang ditentukan sebagai lokasi penyimpanan.

CREATE PARTITION FUNCTION myRangePF1 (datetime2(0))
    AS RANGE RIGHT FOR VALUES ('2022-04-01', '2022-05-01', '2022-06-01') ;
GO

CREATE PARTITION SCHEME myRangePS1
    AS PARTITION myRangePF1
    ALL TO ('PRIMARY') ;
GO

CREATE TABLE dbo.PartitionTable (col1 datetime2(0) PRIMARY KEY, col2 char(10))
    ON myRangePS1 (col1) ;
GO

Membuat tabel yang dipartisi pada beberapa grup file dengan Transact-SQL

Ikuti langkah-langkah di bagian ini untuk membuat satu atau beberapa grup file, file terkait, dan tabel yang dipartisi menggunakan Transact-SQL di SSMS.

Baik SQL Server maupun Azure SQL Managed Instance mendukung pembuatan grup file dan file. Azure SQL Managed Instance secara otomatis mengonfigurasi jalur untuk semua file database yang ditambahkan, sehingga ALTER DATABASE ADD FILE perintah di Azure SQL Managed Instance tidak mengizinkan FILENAME parameter. Azure SQL Database hanya mendukung pembuatan tabel yang dipartisi di PRIMARY grup file. Temukan contoh kode untuk Azure SQL Database di Membuat tabel yang dipartisi pada satu grup file menggunakan Transact-SQL.

Jalankan contoh berikut terhadap database kosong. Contohnya:

  • Menambahkan empat grup file baru ke database.
  • Menambahkan satu file ke setiap grup file.
  • Membuat fungsi partisi RANGE RIGHT yang disebut myRangePF1 dengan tiga nilai batas yang akan mempartisi tabel menjadi empat partisi.
  • Membuat skema partisi yang disebut myRangePS1 yang berlaku myRangePF1 untuk empat grup file baru.
  • Membuat tabel yang dipartisi yang disebut PartitionTable yang menggunakan myRangePS1 untuk mempartisi col1.
  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada toolbar Standar, pilih Kueri Baru.

  3. Contoh ini membuat database baru dan menggunakannya. Kemudian membuat grup file baru, fungsi partisi, dan skema partisi. Tabel baru dibuat dengan skema partisi yang ditentukan sebagai lokasi penyimpanan. Salin dan tempel contoh berikut ke dalam jendela kueri.

    Jika Anda menggunakan instans terkelola, hapus FILENAME parameter dan nilai terkait dari ALTER DATABASE ADD FILE perintah . Instans terkelola menentukan jalur file untuk Anda secara otomatis.

    Jika Anda menggunakan instans SQL Server, sesuaikan nilai untuk FILENAME parameter ke lokasi yang sesuai untuk instans Anda.

    Jika Anda ingin menggunakan database yang sudah ada, hapus CREATE DATABASE perintah dan ubah USE pernyataan ke nama database yang sesuai.

    PILIH Jalankan.

    CREATE DATABASE PartitionTest;
    GO
    
    USE PartitionTest;
    GO
    
    ALTER DATABASE PartitionTest
    ADD FILEGROUP test1fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILEGROUP test2fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILEGROUP test3fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILEGROUP test4fg;
    
    ALTER DATABASE PartitionTest
    ADD FILE
    (
        NAME = partitiontest1,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\partitiontest1.ndf',
        SIZE = 5MB,
        FILEGROWTH = 5MB
    )
    TO FILEGROUP test1fg;
    ALTER DATABASE PartitionTest
    ADD FILE
    (
        NAME = partitiontest2,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\partitiontest2.ndf',
        SIZE = 5MB,
        FILEGROWTH = 5MB
    )
    TO FILEGROUP test2fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILE
    (
        NAME = partitiontest3,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\partitiontest3.ndf',
        SIZE = 5MB,
        FILEGROWTH = 5MB
    )
    TO FILEGROUP test3fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILE
    (
        NAME = partitiontest4,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\partitiontest4.ndf',
        SIZE = 5MB,
        FILEGROWTH = 5MB
    )
    TO FILEGROUP test4fg;
    GO
    
    CREATE PARTITION FUNCTION myRangePF1 (datetime2(0))
        AS RANGE RIGHT FOR VALUES ('2022-04-01', '2022-05-01', '2022-06-01') ;
    GO
    
    CREATE PARTITION SCHEME myRangePS1
        AS PARTITION myRangePF1
        TO (test1fg, test2fg, test3fg, test4fg) ;
    GO
    
    CREATE TABLE PartitionTable (col1 datetime2(0) PRIMARY KEY, col2 char(10))
        ON myRangePS1 (col1) ;
    GO
    

Mempartisi tabel dengan SSMS

Ikuti langkah-langkah di bagian ini untuk membuat grup file dan file terkait secara opsional, lalu buat tabel yang dipartisi atau partisi tabel yang sudah ada menggunakan Wizard Buat Partisi di SQL Server Management Studio (SSMS). Wizard Buat Partisi tersedia di SQL Server untuk SQL Server dan Azure SQL Managed Instance. Untuk Azure SQL Database, lihat Membuat tabel yang dipartisi pada satu grup file menggunakan Transact-SQL.

Membuat grup file baru (opsional)

Jika Anda ingin menempatkan tabel yang dipartisi pada satu atau beberapa grup file baru, ikuti langkah-langkah di bagian ini. Baik SQL Server maupun Azure SQL Managed Instance mendukung pembuatan grup file dan file. Untuk Azure SQL Managed Instance, jalur untuk file apa pun yang dibuat akan secara otomatis dikonfigurasi untuk Anda.

  1. Di Object Explorer, klik kanan database tempat Anda ingin membuat tabel yang dipartisi dan pilih Properti.

  2. Dalam kotak dialog Properti Database - database_name, di bawah Pilih halaman, pilih Grup file.

  3. Di bawah Baris, pilih Tambahkan. Di baris baru, masukkan nama grup file.

    Peringatan

    Saat menentukan beberapa grup file, Anda harus selalu memiliki satu grup file tambahan selain jumlah grup file yang ditentukan untuk nilai batas saat Anda membuat partisi.

  4. Lanjutkan menambahkan baris hingga Anda membuat semua grup file untuk tabel atau tabel yang dipartisi.

  5. Pilih OK.

  6. Di bawah Pilih halaman, pilih File.

  7. Di bawah Baris, pilih Tambahkan. Di baris baru, masukkan nama file dan pilih grup file.

  8. Lanjutkan menambahkan baris hingga Anda telah membuat setidaknya satu file untuk setiap grup file.

Membuat tabel yang dipartisi

  1. Secara opsional, perluas folder Tabel dan buat tabel seperti biasa. Untuk informasi selengkapnya, lihat Membuat tabel (Mesin Database). Atau, Anda dapat menentukan tabel yang sudah ada di langkah berikutnya.

  2. Klik kanan tabel yang ingin Anda partisi, arahkan ke Penyimpanan, lalu pilih Buat Partisi....

  3. Di Wizard Buat Partisi, pada halaman Selamat Datang di Wizard Buat Partisi, pilih Berikutnya.

  4. Pada halaman Pilih Kolom Pemartisian, di kisi kolom pemartisian yang tersedia, pilih kolom tempat Anda ingin mempartisi tabel Anda. Hanya kolom dengan jenis data yang dapat digunakan untuk mempartisi data yang akan ditampilkan di kisi kolom partisi yang tersedia. Jika Anda memilih kolom komputasi sebagai kolom partisi, kolom harus dibuat sebagai kolom yang dipertahankan.

    Pilihan yang Anda miliki untuk kolom partisi dan rentang nilai ditentukan terutama sejauh mana data Anda dapat dikelompokkan dengan cara logis. Misalnya, Anda dapat memilih untuk membagi data Anda menjadi pengelompokan logis menurut bulan atau kuartal setahun. Kueri yang Anda rencanakan untuk dibuat terhadap data Anda menentukan apakah pengelompokan logis ini memadai untuk mengelola partisi tabel Anda. Semua jenis data valid untuk digunakan sebagai kolom partisi, kecuali teks, ntext, gambar, xml, tanda waktu, varchar(max), nvarchar(max), varbinary(max), jenis data alias, atau jenis data umum yang ditentukan pengguna runtime bahasa (CLR).

    Opsi tambahan berikut ini tersedia di halaman ini:

    Kolokasikan tabel ini ke tabel yang dipartisi terpilih
    Memungkinkan Anda memilih tabel yang dipartisi yang berisi data terkait untuk digabungkan dengan tabel ini pada kolom partisi. Tabel dengan partisi yang digabungkan pada kolom partisi biasanya dikueri lebih efisien.

    Indeks non-unik yang selaras dengan penyimpanan dan indeks unik dengan kolom partisi terindeks
    Meratakan semua indeks tabel yang dipartisi dengan skema partisi yang sama. Saat tabel dan indeksnya diratakan, Anda dapat memindahkan partisi masuk dan keluar dari tabel yang dipartisi secara lebih efektif, karena data Anda dipartisi dengan cara yang sama.

    Setelah memilih kolom partisi dan opsi lainnya, pilih Berikutnya.

  5. Pada halaman Pilih Fungsi Partisi, di bawah Pilih fungsi partisi, pilih Fungsi partisi baru atau Fungsi partisi yang sudah ada. Jika Anda memilih Fungsi partisi baru, masukkan nama fungsi. Jika Anda memilih Fungsi partisi yang ada, pilih nama fungsi yang ingin Anda gunakan dari daftar. Opsi Fungsi partisi yang ada tidak akan tersedia jika tidak ada fungsi partisi lain pada database.

    Setelah menyelesaikan halaman ini, pilih Berikutnya.

  6. Pada halaman Pilih Skema Partisi, di bawah Pilih skema partisi, pilih Skema partisi baru atau Skema partisi yang sudah ada. Jika Anda memilih Skema partisi baru, masukkan nama skema. Jika Anda memilih Skema partisi yang ada, pilih nama skema yang ingin Anda gunakan dari daftar. Opsi skema partisi yang ada tidak akan tersedia jika tidak ada skema partisi lain pada database.

    Setelah menyelesaikan halaman ini, pilih Berikutnya.

  7. Pada halaman Partisi Peta, di bawah Rentang, pilih Batas kiri atau Batas kanan. Batas kiri menentukan bahwa nilai batas tertinggi akan disertakan dalam partisi. Batas kanan menentukan bahwa nilai batas terendah akan disertakan dalam setiap partisi. Pelajari selengkapnya tentang rentang kanan dan kiri dalam fungsi Partisi.

    Saat menentukan beberapa titik batas, Anda harus selalu memasukkan satu baris tambahan selain baris yang menetapkan nilai batas ke grup file.

    Di pilih grup file dan tentukan kisi nilai batas, di bawah Grup file, pilih grup file tempat Anda ingin mempartisi data Anda. Di bawah Batas, masukkan nilai batas untuk setiap grup file. Jika Anda ingin menetapkan beberapa atau semua partisi ke grup file yang sama, pilih nama grup file yang sama untuk setiap baris. Jika Anda memilih grup file pada satu baris dan nilai batas dibiarkan kosong, fungsi partisi memetakan seluruh tabel atau indeks ke dalam satu partisi menggunakan nama fungsi partisi.

    Opsi tambahan berikut ini tersedia di halaman ini:

    Atur Batas...
    Membuka kotak dialog Atur Nilai Batas untuk memilih nilai batas dan rentang tanggal yang Anda inginkan untuk partisi Anda. Opsi ini hanya tersedia ketika Anda telah memilih kolom partisi yang berisi salah satu jenis data berikut: tanggal, tanggalwaktu, smalldatetime, datetime2, atau datetimeoffset.

    Memperkirakan penyimpanan
    Memperkirakan rowcount, ruang yang diperlukan, dan ruang yang tersedia untuk penyimpanan untuk setiap grup file yang ditentukan untuk partisi. Nilai-nilai ini ditampilkan dalam kisi sebagai nilai baca-saja.

    Kotak dialog Atur Nilai Batas memungkinkan opsi tambahan berikut ini:

    Tanggal mulai
    Memilih tanggal mulai untuk nilai rentang partisi Anda.

    Tanggal selesai
    Memilih tanggal akhir untuk nilai rentang partisi Anda. Jika Anda memilih Batas kiri pada halaman Partisi Peta, tanggal ini akan menjadi nilai terakhir untuk setiap grup file/partisi. Jika Anda memilih Batas kanan pada halaman Partisi Peta, tanggal ini akan menjadi nilai pertama dalam grup file berikutnya ke terakhir.

    Rentang tanggal
    Memilih granularitas tanggal atau kenaikan nilai rentang yang Anda inginkan untuk setiap partisi.

    Setelah menyelesaikan halaman ini, pilih Berikutnya.

  8. Di halaman Pilih Opsi Output, tentukan bagaimana Anda ingin menyelesaikan tabel yang dipartisi. Pilih Buat Skrip untuk membuat skrip SQL berdasarkan halaman sebelumnya dalam wizard. Pilih Jalankan segera untuk membuat tabel baru yang dipartisi setelah menyelesaikan semua halaman yang tersisa dalam wizard. Pilih Jadwalkan untuk membuat tabel baru yang dipartisi pada waktu yang telah ditentukan di masa mendatang.

    Jika Anda memilih Buat skrip, opsi berikut ini tersedia di bawah opsi Skrip:

    Skrip ke file
    Menghasilkan skrip sebagai .sql file. Masukkan nama file dan lokasi dalam kotak Nama file atau pilih Telusuri untuk membuka kotak dialog Lokasi File Skrip. Dari Simpan Sebagai, pilih Teks unicode atau teks ANSI.

    Skrip ke Clipboard
    Menyimpan skrip ke Clipboard.

    Skrip ke Jendela Kueri Baru
    Menghasilkan skrip ke jendela Editor Kueri baru. Ini adalah pilihan default.

    Jika Anda memilih Jadwalkan, pilih Ubah jadwal.

    1. Dalam kotak dialog Jadwal Pekerjaan Baru, dalam kotak Nama , masukkan nama jadwal pekerjaan.

    2. Pada daftar Jenis jadwal, pilih jenis jadwal:

      • Mulai secara otomatis ketika SQL Server Agent dimulai

      • Mulai setiap kali CPU diam

      • Berulang. Pilih opsi ini jika tabel baru Anda yang dipartisi diperbarui dengan informasi baru secara teratur.

      • Satu kali. Ini adalah pilihan default.

    3. Pilih atau kosongkan kotak centang Diaktifkan untuk mengaktifkan atau menonaktifkan jadwal.

    4. Jika Anda memilih Berulang:

      1. Di bawah Frekuensi, pada daftar Terjadi, tentukan frekuensi kemunculan:

        • Jika Anda memilih Harian, dalam kotak Berulang setiap , masukkan seberapa sering jadwal pekerjaan diulang dalam hari.

        • Jika Anda memilih Mingguan, dalam kotak Berulang setiap , masukkan seberapa sering jadwal pekerjaan diulang dalam minggu. Pilih hari atau hari dalam seminggu tempat jadwal pekerjaan dijalankan.

        • Jika Anda memilih Bulanan, pilih Hari atau .

          • Jika Anda memilih Hari, masukkan tanggal bulan yang Anda inginkan agar jadwal pekerjaan berjalan dan seberapa sering jadwal pekerjaan berulang dalam bulan. Misalnya, jika Anda ingin jadwal pekerjaan berjalan pada hari ke-15 dalam sebulan setiap bulan lainnya, pilih Hari dan masukkan "15" di kotak pertama dan "2" di kotak kedua. Angka terbesar yang diizinkan dalam kotak kedua adalah "99."

          • Jika Anda memilih The, pilih hari tertentu dalam seminggu dalam bulan yang Anda inginkan agar jadwal pekerjaan berjalan dan seberapa sering jadwal pekerjaan berulang dalam bulan. Misalnya, jika Anda ingin jadwal pekerjaan berjalan pada hari kerja terakhir setiap bulan, pilih Hari, pilih terakhir dari daftar pertama dan hari kerja dari daftar kedua, lalu masukkan "2" di kotak terakhir. Anda juga dapat memilih pertama, kedua, ketiga, atau keempat, serta hari kerja tertentu (misalnya: Minggu atau Rabu) dari dua daftar pertama. Jumlah terbesar yang diizinkan dalam kotak terakhir adalah "99."

      2. Di bawah Frekuensi harian, tentukan seberapa sering jadwal pekerjaan berulang pada hari jadwal pekerjaan berjalan:

        • Jika Anda memilih Terjadi sekali pada, masukkan waktu tertentu dalam sehari saat jadwal pekerjaan harus berjalan di kotak Terjadi sekaligus . Masukkan jam, menit, dan detik dalam sehari, serta AM atau PM.

        • Jika Anda memilih Terjadi setiap, tentukan seberapa sering jadwal pekerjaan berjalan selama hari yang dipilih di bawah Frekuensi. Misalnya, jika Anda ingin jadwal pekerjaan diulang setiap 2 jam pada hari jadwal pekerjaan dijalankan, pilih Terjadi setiap, masukkan "2" di kotak pertama, lalu pilih jam dari daftar. Dari daftar ini Anda juga dapat memilih menit dan detik. Angka terbesar yang diizinkan dalam kotak pertama adalah "100."

          Dalam kotak Mulai dari , masukkan waktu jadwal pekerjaan harus mulai berjalan. Di kotak Berakhir, masukkan waktu jadwal pekerjaan harus berhenti diulang. Masukkan jam, menit, dan detik dalam sehari, serta AM atau PM.

      3. Di bawah Durasi, di Tanggal mulai, masukkan tanggal yang Anda inginkan agar jadwal pekerjaan mulai berjalan. Pilih Tanggal selesai atau Tidak ada tanggal selesai untuk menunjukkan kapan jadwal pekerjaan harus berhenti berjalan. Jika Anda memilih Tanggal selesai, masukkan tanggal yang anda inginkan untuk jadwal pekerjaan untuk berhenti berjalan.

    5. Jika Anda memilih Satu Kali, di bawah Kemunculan satu kali, dalam kotak Tanggal , masukkan tanggal jadwal pekerjaan akan dijalankan. Dalam kotak Waktu , masukkan waktu jadwal pekerjaan akan dijalankan. Masukkan jam, menit, dan detik dalam sehari, serta AM atau PM.

    6. Di bawah Ringkasan, di Deskripsi, verifikasi bahwa semua pengaturan jadwal pekerjaan sudah benar.

    7. Pilih OK.

    Setelah menyelesaikan halaman ini, pilih Berikutnya.

  9. Pada halaman Tinjau Ringkasan , di bawah Tinjau pilihan Anda, perluas semua opsi yang tersedia untuk memverifikasi bahwa semua pengaturan partisi sudah benar. Jika semuanya seperti yang diharapkan, pilih Selesai.

  10. Pada halaman Buat Kemajuan Wizard Partisi, pantau informasi status tentang tindakan Wizard Buat Partisi. Bergantung pada opsi yang Anda pilih di wizard, halaman kemajuan mungkin berisi satu atau beberapa tindakan. Kotak atas menampilkan status keseluruhan wizard dan jumlah status, kesalahan, dan pesan peringatan yang telah diterima wizard.

    Opsi berikut ini tersedia di halaman Buat Kemajuan Wizard Partisi:

    Rincian
    Menyediakan tindakan, status, dan pesan apa pun yang dikembalikan dari tindakan yang diambil oleh wizard.

    Perbuatan
    Menentukan jenis dan nama setiap tindakan.

    Keadaan
    Menunjukkan apakah tindakan wizard secara keseluruhan mengembalikan nilai Keberhasilan atau Kegagalan.

    Pesan
    Memberikan pesan kesalahan atau peringatan apa pun yang dikembalikan dari proses.

    Lapor
    Membuat laporan yang berisi hasil Wizard Buat Partisi. Opsinya adalah Tampilkan Laporan, Simpan Laporan ke File, Salin Laporan ke Clipboard, dan Kirim Laporan sebagai Email.

    Tampilkan Laporan
    Membuka kotak dialog Tampilkan Laporan , yang berisi laporan teks kemajuan Wizard Buat Partisi.

    Simpan Laporan ke File
    Membuka kotak dialog Simpan Laporan Sebagai .

    Salin Laporan ke Clipboard
    Menyalin hasil laporan kemajuan wizard ke Clipboard.

    Kirim Laporan sebagai Email
    Menyalin hasil laporan kemajuan wizard ke dalam pesan email.

    Setelah selesai, pilih Tutup.

Wizard Buat Partisi membuat fungsi dan skema partisi lalu menerapkan partisi ke tabel yang ditentukan. Untuk memverifikasi partisi tabel, di Object Explorer, klik kanan tabel dan pilih Properti. Pilih halaman Penyimpanan . Halaman menampilkan informasi seperti nama fungsi dan skema partisi dan jumlah partisi.

Metadata kueri tabel dan indeks yang dipartisi

Anda dapat mengkueri metadata untuk menentukan apakah tabel dipartisi, titik batas untuk tabel yang dipartisi, kolom partisi untuk tabel yang dipartisi, jumlah baris di setiap partisi, dan jika pemadatan data telah diimplementasikan pada partisi.

Menentukan apakah tabel dipartisi

Kueri berikut mengembalikan satu atau beberapa baris jika tabel PartitionTable dipartisi, atau jika ada indeks non-kluster pada tabel yang dipartisi. Jika tabel tidak dipartisi dan tidak ada indeks non-kluster pada tabel yang dipartisi, tidak ada baris yang dikembalikan.

SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, *
FROM sys.tables AS t
JOIN sys.indexes AS i
    ON t.[object_id] = i.[object_id]
JOIN sys.partition_schemes ps
    ON i.data_space_id = ps.data_space_id
WHERE t.name = 'PartitionTable';
GO

Menentukan nilai batas untuk tabel yang dipartisi

Kueri berikut mengembalikan nilai batas untuk setiap partisi dalam PartitionTable tabel.

Kueri menggunakan type kolom dalam sys.indexes untuk mengembalikan hanya informasi untuk indeks tabel berkluster, atau untuk tabel dasar jika tabel adalah timbunan. Untuk menyertakan indeks nonclustered yang dipartisi dalam hasil kueri, hapus atau komentari AND i.type <= 1 dari kueri.

SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, t.name AS TableName, i.name AS IndexName,
    p.partition_number, p.partition_id, i.data_space_id, f.function_id, f.type_desc,
    r.boundary_id, r.value AS BoundaryValue
FROM sys.tables AS t
JOIN sys.indexes AS i
    ON t.object_id = i.object_id
JOIN sys.partitions AS p
    ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN  sys.partition_schemes AS s
    ON i.data_space_id = s.data_space_id
JOIN sys.partition_functions AS f
    ON s.function_id = f.function_id
LEFT JOIN sys.partition_range_values AS r
    ON f.function_id = r.function_id and r.boundary_id = p.partition_number
WHERE
    t.name = 'PartitionTable'
    AND i.type <= 1
ORDER BY SchemaName, t.name, i.name, p.partition_number;

Menentukan kolom partisi untuk tabel yang dipartisi

Kueri berikut mengembalikan nama kolom partisi untuk tabel PartitionTable.

Kueri menggunakan type kolom dalam sys.indexes untuk mengembalikan hanya informasi untuk indeks tabel berkluster, atau untuk tabel dasar jika tabel adalah timbunan. Untuk menyertakan indeks nonclustered yang dipartisi dalam hasil kueri, hapus atau komentari AND i.type <= 1 dari kueri.

SELECT
    t.[object_id] AS ObjectID
    , SCHEMA_NAME(t.schema_id) AS SchemaName
    , t.name AS TableName
    , ic.column_id AS PartitioningColumnID
    , c.name AS PartitioningColumnName
    , i.name as IndexName
FROM sys.tables AS t
JOIN sys.indexes AS i
    ON t.[object_id] = i.[object_id]
    AND i.[type] <= 1 -- clustered index or a heap
JOIN sys.partition_schemes AS ps
    ON ps.data_space_id = i.data_space_id
JOIN sys.index_columns AS ic
    ON ic.[object_id] = i.[object_id]
    AND ic.index_id = i.index_id
    AND ic.partition_ordinal >= 1 -- because 0 = non-partitioning column
JOIN sys.columns AS c
    ON t.[object_id] = c.[object_id]
    AND ic.column_id = c.column_id
WHERE t.name = 'PartitionTable';
GO

Menentukan baris menjelaskan kemungkinan rentang nilai di setiap partisi

Kueri berikut mengembalikan baris menurut partisi untuk tabel PartitionTable, dan deskripsi 'operator perbandingan' untuk fungsi partisi yang digunakan. Kueri asli disediakan oleh Kalen Delaney.

Kueri menggunakan type kolom dalam sys.indexes untuk mengembalikan hanya informasi untuk indeks tabel berkluster, atau untuk tabel dasar jika tabel adalah timbunan. Untuk menyertakan indeks nonclustered yang dipartisi dalam hasil kueri, hapus atau komentari AND i.type <= 1 dari kueri.

SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, t.name AS TableName, i.name AS IndexName,
    p.partition_number AS PartitionNumber, f.name AS PartitionFunctionName, p.rows AS Rows, rv.value AS BoundaryValue,
CASE WHEN ISNULL(rv.value, rv2.value) IS NULL THEN 'N/A'
ELSE
    CASE WHEN f.boundary_value_on_right = 0 AND rv2.value IS NULL THEN '>='
        WHEN f.boundary_value_on_right = 0 THEN '>'
        ELSE '>='
    END + ' ' + ISNULL(CONVERT(varchar(64), rv2.value), 'Min Value') + ' ' +
        CASE f.boundary_value_on_right WHEN 1 THEN 'and <'
                ELSE 'and <=' END
        + ' ' + ISNULL(CONVERT(varchar(64), rv.value), 'Max Value')
END AS TextComparison
FROM sys.tables AS t
JOIN sys.indexes AS i
    ON t.object_id = i.object_id
JOIN sys.partitions AS p
    ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN  sys.partition_schemes AS s
    ON i.data_space_id = s.data_space_id
JOIN sys.partition_functions AS f
    ON s.function_id = f.function_id
LEFT JOIN sys.partition_range_values AS r
    ON f.function_id = r.function_id and r.boundary_id = p.partition_number
LEFT JOIN sys.partition_range_values AS rv
    ON f.function_id = rv.function_id
    AND p.partition_number = rv.boundary_id
LEFT JOIN sys.partition_range_values AS rv2
    ON f.function_id = rv2.function_id
    AND p.partition_number - 1= rv2.boundary_id
WHERE
    t.name = 'PartitionTable'
    AND i.type <= 1
ORDER BY t.name, p.partition_number;

Kolom menjelaskan TextComparison kemungkinan rentang nilai di setiap partisi berdasarkan definisi fungsi partisi. Berikut adalah tampilan contoh hasil dari kueri:

Nama Skema TableName IndexName PartitionNumber PartitionFunctionName baris BoundaryValue Perbandingan Teks
dbo PartitionTable PK_PartitionTable 1 PFTest 0 2022-03-01 00:00:00.000 >= Nilai Min dan < 1 Mar 2022 12:00
dbo PartitionTable PK_PartitionTable 2 PFTest 2 2022-04-01 00:00:00.000 >= 1 Mar 2022 12:00 DAN < Apr 1 2022 12:00
dbo PartitionTable PK_PartitionTable 3 PFTest 1 2022-05-01 00:00:00.000 >= Apr 1 2022 12:00AM dan < Mei 1 2022 12:00
dbo PartitionTable PK_PartitionTable 4 PFTest 0 2022-06-01 00:00:00.000 >= 1 Mei 2022 12:00AM dan < 1 Jun 2022 12:00
dbo PartitionTable PK_PartitionTable 5 PFTest 1 2022-07-01 00:00:00.000 >= 1 Jun 2022 12:00AM dan < Jul 1 2022 12:00
dbo PartitionTable PK_PartitionTable 6 PFTest 0 NULL >= 1 Jul 2022 12:00AM dan < Nilai Maks

Batasan

Pelajari tentang batasan serta pertimbangan performa untuk partisi dalam Batasan