Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 173|Jawab: 0

[Kiat] Kompresi baris tabel database SQL Server dan kompresi halaman

[Salin tautan]
Diposting pada 09/01/2026 11.20.06 | | | |
Persyaratan: Dalam database SQL Server, ada tabel (misalnya, tabel log, tabel log permintaan) yang memakan ruang disk yang sangat besar, mungkin ratusan GB, bagaimana cara mengurangi penggunaan ruang tabel? Kompresi data (hemat ruang) dapat diaktifkan untuk teks yang sangat berulang (misalnya, HTML, JSON, log).

Kompresi ROW

Kompresi akan mengubah penyimpanan fisik data, tetapi bukan struktur logis data. Proses kompresi garis:

Mengidentifikasi tipe data setiap kolom dan mengonversinya menjadi panjang variabel
Terakhir, jumlah permintaan ruang penyimpanan dikurangi menjadi permintaan aktual
Setelah kompresi, jumlah data yang disimpan di setiap halaman meningkat
Setelah kompresi, kurangi jumlah metadata
Misalnya, jika jenis data kolom adalah smallint, sistem mengalokasikan 2 byte secara default
Namun pada kenyataannya, hanya 1 byte ruang yang digunakan, dan jika kompresi diaktifkan pada meja, itu dapat dialokasikan sesuai permintaan

Kompresi PAGE

Kompresi halaman melakukan operasi tambahan untuk meningkatkan kompresi baris
Operasi utama: kompresi garis, kompresi awalan, kompresi kamus

Konsumsi CPU: Kompresi PAGE > kompresi baris

Ujian

Buat tabel Users1 dan Users2 baru, keduanya menyisipkan 100.000 potongan data, dan skrip sql adalah sebagai berikut:
Untuk melihat hunian ruang tabel, yang semuanya berukuran 3,27 MB, perintahnya adalah sebagai berikut:
Seperti yang ditunjukkan di bawah ini:



Untuk melihat status kompresi tabel Users2, perintahnya adalah sebagai berikut:
Seperti yang ditunjukkan di bawah ini:



sp_estimate_data_compression_savingsPerkirakan penghematan yang dapat terjadi saat Anda mengaktifkan tabel atau partisi untuk baris, halaman, penyimpanan kolom, arsip penyimpanan kolom, atau kompresi XML. Perintahnya adalah sebagai berikut:
Outputnya adalah sebagai berikut:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB)        sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB)
Pengguna2 dbo 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB Indeks menempati ≈ 3,29 MB dengan pengaturan kompresi saat ini
size_with_requested_compression_setting (KB) 1296 KB Estimasi jejak ≈ 1,27 MB jika Anda mengaktifkan metode kompresi baru yang Anda minta, seperti PAGE atau ROW
Untuk menjalankan kompresi halaman, perintahnya adalah sebagai berikut:
Perbandingan efek:Tabel Users2 adalah 3,27 MB sebelum kompresi dan 1,23 MB setelah kompresi, seperti yang ditunjukkan pada gambar di bawah ini:



Visualisasinya adalah sebagai berikut:



Referensi:

Login hyperlink terlihat.
Login hyperlink terlihat.
Login hyperlink terlihat.




Mantan:Masalah keunikan bidang penghapusan sementara database (tombod)
Depan:Windows Defender Credential Guard tidak mengizinkan penggunaan kredensial yang disimpan
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com