Implementasi kompresi Unicode

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

SQL Server menggunakan implementasi algoritma Skema Kompresi Standar untuk Unicode (SCSU) untuk memadatkan nilai Unicode yang disimpan dalam objek terkompresi baris atau halaman. Untuk objek terkompresi ini, kompresi Unicode otomatis untuk kolom nchar(n) dan nvarchar(n). Mesin Database menyimpan data Unicode sebagai 2 byte, terlepas dari lokalnya. Ini dikenal sebagai pengodean UCS-2. Untuk beberapa lokal, implementasi kompresi SCSU di SQL Server dapat menghemat hingga 50 persen dalam ruang penyimpanan.

Tipe data yang didukung

Kompresi Unicode mendukung jenis data nchar(n) dan nvarchar(n) dengan panjang tetap. Nilai data yang disimpan dari baris atau di kolom nvarchar(maks) tidak dikompresi.

Catatan

Pemadatan Unicode tidak didukung untuk data nvarchar(maks) meskipun disimpan secara berturut-turut. Namun, jenis data ini masih dapat memperoleh manfaat dari pemadatan halaman.

Meningkatkan dari versi SQL Server yang lebih lama

Ketika database SQL Server ditingkatkan ke SQL Server, perubahan terkait kompresi Unicode tidak dilakukan pada objek database apa pun, dikompresi, atau tidak dikompresi. Setelah database ditingkatkan, objek terpengaruh sebagai berikut:

  • Jika objek tidak dikompresi, tidak ada perubahan yang dilakukan dan objek terus berfungsi seperti sebelumnya.

  • Objek terkompresi baris atau halaman terus berfungsi seperti yang sebelumnya. Data yang tidak dikompresi tetap dalam bentuk yang tidak dikompresi hingga nilainya diperbarui.

  • Baris baru yang disisipkan ke dalam tabel terkompresi baris atau halaman dikompresi menggunakan pemadatan Unicode.

    Catatan

    Untuk memanfaatkan sepenuhnya manfaat kompresi Unicode, bangun ulang objek dengan pemadatan halaman atau baris.

Bagaimana kompresi Unicode memengaruhi penyimpanan data

Ketika indeks dibuat atau dibangun kembali atau ketika nilai diubah dalam tabel yang dikompresi dengan pemadatan baris atau halaman, indeks atau nilai yang terpengaruh disimpan dikompresi hanya jika ukuran terkompresinya kurang dari ukurannya saat ini. Ini mencegah baris dalam tabel atau indeks meningkat ukurannya karena pemadatan Unicode.

Ruang penyimpanan yang disimpan kompresi tergantung pada karakteristik data yang sedang dikompresi dan lokal data. Tabel berikut mencantumkan penghematan ruang yang dapat dicapai untuk beberapa lokal.

Lokal Persentase pemadatan
Inggris 50%
Jerman 50%
Hindi 50%
Turki 48%
Vietnam 39%
Jepang 15%

Langkah berikutnya