Spesifikasi kapasitas maksimum untuk SQL Server

Berlaku untuk:SQL Server

Artikel ini memperlihatkan ukuran dan jumlah maksimum berbagai objek yang ditentukan dalam SQL Server 2016 (13.x) dan yang lebih baru. Jika Anda ingin melihat batas edisi, lihat Menghitung batas kapasitas berdasarkan edisi SQL Server.

Untuk SQL Server 2014 (12.x), lihat Spesifikasi kapasitas maksimum untuk SQL Server 2014.

Objek Mesin Database

Nilai maksimum berbagai objek yang ditentukan dalam database SQL Server, atau dirujuk dalam pernyataan Transact-SQL.

Objek Mesin Database SQL Server Nilai maksimum untuk SQL Server (64-bit) Informasi Tambahan
Ukuran batch 65.536 * (ukuran paket jaringan) Ukuran paket jaringan adalah ukuran paket aliran data tabular (TDS) yang digunakan untuk berkomunikasi antara Mesin Database relasional dan aplikasi. Ukuran paket default adalah 4 KB. Ukuran paket jaringan mengontrol opsi konfigurasi ini.
Panjang byte string yang berisi pernyataan Transact-SQL (ukuran batch) 65.536 * (ukuran paket jaringan) Ukuran paket jaringan adalah ukuran paket aliran data tabular (TDS) yang digunakan untuk berkomunikasi antara Mesin Database relasional dan aplikasi. Ukuran paket default adalah 4 KB, dan dikontrol oleh opsi konfigurasi ukuran paket jaringan.
Byte per kolom string pendek 8.000
Byte per GROUP BY, ORDER BY 8,060
Byte per kunci indeks 900 byte untuk indeks berkluster. 1.700 byte untuk indeks nonclustered. Untuk SQL Server 2014 (12.x) dan yang lebih lama, semua versi didukung 900 byte untuk semua jenis indeks. Jumlah maksimum byte dalam kunci indeks berkluster tidak boleh melebihi 900. Untuk kunci indeks nonclustered, maksimumnya adalah 1.700 byte.

Anda dapat menentukan kunci menggunakan kolom panjang variabel yang ukuran maksimumnya bertambah hingga lebih dari batas. Namun, ukuran gabungan data dalam kolom tersebut tidak pernah dapat melebihi batas.

Dalam indeks non-kluster, Anda dapat menyertakan kolom non-kunci tambahan, dan tidak dihitung terhadap batas ukuran kunci. Kolom non-kunci mungkin membantu beberapa kueri berkinerja lebih baik.
Byte per kunci indeks untuk tabel yang dioptimalkan memori 2.500 byte untuk indeks nonclustered. Tidak ada batasan untuk indeks hash, selama semua kunci indeks pas berturut-turut. Pada tabel yang dioptimalkan memori, indeks non-kluster tidak dapat memiliki kolom kunci yang ukuran maksimumnya dideklarasikan melebihi 2.500 byte. Tidak masalah jika data aktual dalam kolom kunci akan lebih pendek dari ukuran maksimum yang dinyatakan.

Untuk kunci indeks hash, tidak ada batasan keras pada ukuran.

Untuk indeks pada tabel yang dioptimalkan memori, tidak ada konsep kolom yang disertakan, karena semua indeks secara inheren mencakup semua kolom.

Untuk tabel yang dioptimalkan memori, meskipun ukuran baris adalah 8.060 byte, beberapa kolom panjang variabel dapat disimpan secara fisik di luar 8.060 byte tersebut. Namun, ukuran maksimum yang dinyatakan dari semua kolom kunci untuk semua indeks pada tabel, ditambah kolom panjang tetap tambahan dalam tabel, harus pas dalam 8.060 byte.
Byte per kunci asing 900
Byte per kunci primer 900
Byte per baris 8,060 SQL Server mendukung penyimpanan luapan baris, yang memungkinkan kolom panjang variabel didorong dari baris. Hanya akar 24 byte yang disimpan dalam rekaman utama untuk kolom panjang variabel yang didorong keluar dari baris. Untuk informasi selengkapnya, lihat Dukungan Baris Besar.
Byte per baris dalam tabel yang dioptimalkan memori 8,060 Tabel yang dioptimalkan memori pada SQL Server 2016 (13.x) dan yang lebih baru mendukung penyimpanan di luar baris. Kolom panjang variabel didorong dari baris jika ukuran maksimum untuk semua kolom dalam tabel melebihi 8.060 byte; tindakan ini adalah keputusan waktu kompilasi. Hanya referensi 8-byte yang disimpan dalam baris untuk kolom yang disimpan di luar baris. Untuk informasi selengkapnya, lihat Ukuran Tabel dan Baris dalam Tabel yang Dioptimalkan Memori.
Byte dalam teks sumber dari prosedur tersimpan Ukuran batch yang lebih kecil atau 250 MB
Byte per varchar(max), varbinary(max), xml, text, atau image kolom 2^31-1
Karakter per ntext atau nvarchar(max) kolom 2^30-1
Indeks berkluster per tabel 1
Kolom dalam GROUP BY, ORDER BY Hanya dibatasi oleh jumlah byte
Kolom atau ekspresi dalam pernyataan GROUP BY WITH CUBE atau GROUP BY WITH ROLLUP 10
Kolom per kunci indeks 32 Jika tabel berisi satu atau beberapa indeks XML, kunci pengklusteran tabel pengguna dibatasi hingga 31 kolom karena kolom XML ditambahkan ke kunci pengklusteran indeks XML utama. Anda dapat menyertakan kolom non-kunci dalam indeks non-kluster, untuk menghindari batasan maksimum 32 kolom kunci. Untuk informasi selengkapnya, lihat Membuat Indeks dengan Kolom yang Disertakan.
Kolom per kunci asing atau kunci primer 32
Kolom per INSERT pernyataan 4,096
Kolom per SELECT pernyataan 4,096
Kolom per tabel 1,024 Tabel yang menyertakan kumpulan kolom jarang menyertakan hingga 30.000 kolom. Lihat kumpulan kolom jarang.
Kolom per UPDATE pernyataan 4,096 Batas yang berbeda berlaku untuk kumpulan kolom jarang.
Kolom per tampilan 1,024
Koneksi per klien Nilai maksimum koneksi yang dikonfigurasi
Ukuran database 524.272 terabyte
Database per instans SQL Server 32.767
Grup file per database 32.767
Grup file per database untuk data yang dioptimalkan memori 1
File per database 32.767
Ukuran file (data) 16 terabyte
Ukuran file (log) 2 terabyte
File data untuk data yang dioptimalkan memori per database 4.096 di SQL Server 2014 (12.x). Batasnya kurang ketat pada SQL Server 2016 (13.x) dan yang lebih baru.
File delta per file data untuk data yang dioptimalkan memori 1
Referensi tabel kunci asing per tabel Keluar = 253.
Masuk = 10.000.
Untuk pembatasan, lihat Membuat Hubungan Kunci Asing.
Panjang pengidentifikasi (dalam karakter) 128
Instans per komputer 50 instans di server yang berdiri sendiri.

25 instans kluster failover saat menggunakan drive kluster bersama sebagai penyimpanan.

50 instans kluster failover dengan berbagi file SMB sebagai opsi penyimpanan.
Indeks per tabel yang dioptimalkan memori 999 memulai SQL Server 2017 (14.x) dan di Azure SQL Database.

8 di SQL Server 2016 (13.x) dan SQL Server 2014 (12.x).
Kunci per koneksi Kunci maksimum per server
Kunci per instans SQL Server Hanya dibatasi oleh memori Nilai ini untuk alokasi kunci statis. Kunci dinamis hanya dibatasi oleh memori.
Tingkat prosedur tersimpan berlapis 32 Jika prosedur tersimpan mengakses lebih dari 64 database, atau lebih dari dua database dalam interleaving, Anda akan menerima kesalahan.
Subkueri bersarang 32
Transaksi berlapis 4,294,967,296
Tingkat pemicu berlapis 32
Indeks nonclustered per tabel 999
Jumlah ekspresi berbeda dalam GROUP BY klausul ketika salah satu hal berikut ini ada: CUBE, , ROLLUP, GROUPING SETS, WITH CUBEWITH ROLLUP 32
Jumlah kumpulan pengelompokan yang dihasilkan oleh operator dalam GROUP BY klausul 4,096
Parameter per prosedur tersimpan 2,100
Parameter per fungsi yang ditentukan pengguna 2,100
REFERENSI per tabel 253
Baris per tabel Dibatasi oleh penyimpanan yang tersedia
Tabel per database Dibatasi oleh jumlah total objek dalam database Objek termasuk tabel, tampilan, prosedur tersimpan, fungsi yang ditentukan pengguna, pemicu, aturan, default, dan batasan. Total jumlah semua objek dalam database tidak boleh melebihi 2.147.483.647.
Partisi per tabel atau indeks yang dipartisi 15.000
Statistik pada kolom yang tidak diindeks 30.000
Tabel per SELECT pernyataan Hanya dibatasi oleh sumber daya yang tersedia
Pemicu per tabel Dibatasi oleh jumlah objek dalam database Objek termasuk tabel, tampilan, prosedur tersimpan, fungsi yang ditentukan pengguna, pemicu, aturan, default, dan batasan. Total jumlah semua objek dalam database tidak boleh melebihi 2.147.483.647.
Koneksi pengguna 32.767
Indeks XML 249

Objek aplikasi tingkat Data SQL Server

Nilai maksimum berbagai objek yang diuji dalam aplikasi tingkat data (DAC) SQL Server.

Objek DAC SQL Server Nilai maksimum untuk SQL Server (64-bit) Informasi Tambahan
Database per DAC 1
Objek per DAC Dibatasi oleh jumlah objek dalam database, atau memori yang tersedia. Jenis objek yang disertakan dalam batas adalah pengguna, tabel, tampilan, prosedur tersimpan, fungsi yang ditentukan pengguna, jenis data yang ditentukan pengguna, peran database, skema, dan jenis tabel yang ditentukan pengguna.

Objek replikasi

Nilai maksimum berbagai objek yang ditentukan dalam Replikasi SQL Server.

Objek Replikasi SQL Server Nilai maksimum untuk SQL Server
(64-bit)
Informasi Tambahan
Artikel (gabungkan publikasi) 2.048
Artikel (rekam jepret atau publikasi transaksi) 32.767
Kolom dalam tabel (gabungkan publikasi) 246 Jika pelacakan baris digunakan untuk deteksi konflik (default), tabel dasar dapat menyertakan maksimum 1.024 kolom. Namun, publikasi perlu memfilter artikel sehingga maksimum 246 kolom diterbitkan. Jika pelacakan kolom digunakan, tabel dasar dapat menyertakan maksimum 246 kolom.
Kolom dalam tabel (rekam jepret SQL Server atau publikasi transaksi) 1.000 Tabel dasar dapat menyertakan jumlah maksimum kolom yang diizinkan dalam database publikasi SQL Server (1.024), tetapi kolom harus difilter dari artikel jika melebihi maksimum yang ditentukan untuk jenis publikasi.
Kolom dalam tabel (Rekam jepret Oracle atau publikasi transaksi) 995 Tabel dasar dapat menyertakan jumlah maksimum kolom yang diizinkan dalam database publikasi SQL Server (1.024), tetapi kolom harus difilter dari artikel jika melebihi maksimum yang ditentukan untuk jenis publikasi.
Byte untuk kolom yang digunakan dalam filter baris (gabungkan publikasi) 1,024
Byte untuk kolom yang digunakan dalam filter baris (rekam jepret atau publikasi transaksional) 8.000

Baca juga