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 CUBE WITH 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 |