Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Menyediakan informasi indeks penyimpan kolom berdasarkan per segmen.
Untuk indeks penyimpan kolom berkluster, sys.column_store_row_groups memiliki kolom untuk jumlah total baris yang disimpan secara fisik (termasuk yang ditandai sebagai dihapus) dan kolom untuk jumlah baris yang ditandai sebagai dihapus. Gunakan sys.column_store_row_groups untuk menentukan grup baris mana yang memiliki persentase tinggi dari baris yang dihapus dan harus dibangun kembali.
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
object_id |
int | ID tabel tempat indeks ini ditentukan. |
index_id |
int | ID indeks penyimpan kolom. |
partition_number |
int | Partisi tabel yang menyimpan grup baris yang diidentifikasi oleh row_group_id. Gunakan partition_number untuk bergabung dengan sys.partitions. |
row_group_id |
int | Nomor grup baris yang terkait dengan grup baris ini. Angka ini unik dalam partisi. -1 = ekor tabel yang dioptimalkan memori. |
delta_store_hobt_id |
bigint |
hobt_id untuk OPEN grup baris di penyimpanan delta.NULL jika grup baris tidak berada di penyimpanan delta. NULL untuk ekor tabel yang dioptimalkan memori. |
state |
tinyint | Angka yang menjelaskan status grup baris. 0 = INVISIBLE1 = OPEN2 = CLOSED3 = COMPRESSED4 = TOMBSTONE |
state_description |
nvarchar(60) | Deskripsi status grup baris:INVISIBLE - Segmen terkompresi tersembunyi dalam proses dibangun dari data di penyimpanan delta. Tindakan baca menggunakan penyimpanan delta hingga segmen terkompresi yang tidak terlihat selesai. Kemudian segmen baru dibuat terlihat, dan penyimpanan delta sumber dihapus.OPEN - Grup baris baca/tulis yang menerima baris baru. Grup baris terbuka masih dalam format rowstore dan tidak dikompresi ke format penyimpan kolom.CLOSED - Grup baris yang diisi, tetapi belum dikompresi oleh proses penggerak tuple.COMPRESSED - Grup baris yang diisi dan dikompresi. |
total_rows |
bigint | Total baris yang disimpan secara fisik dalam grup baris. Baris yang dihapus mungkin masih disimpan. Jumlah maksimum baris dalam grup baris adalah 1.048.576. |
deleted_rows |
bigint | Total baris dalam grup baris yang ditandai dihapus tetapi tetap disimpan. Nilai ini selalu 0 untuk grup baris delta.Untuk indeks penyimpan kolom noncluster, nilai ini tidak menyertakan baris yang dihapus yang disimpan dalam buffer penghapusan. Untuk informasi selengkapnya, dan untuk menemukan jumlah baris yang dihapus di buffer penghapusan, lihat sys.internal_partitions. |
size_in_bytes |
bigint | Ukuran dalam byte semua data dalam grup baris ini (tidak termasuk metadata atau kamus bersama), untuk grup baris penyimpanan delta dan penyimpan kolom. |
Keterangan
Mengembalikan satu baris untuk setiap grup baris penyimpan kolom untuk setiap partisi setiap tabel yang memiliki indeks penyimpan kolom berkluster atau non-kluster.
Gunakan sys.column_store_row_groups untuk mengetahui berapa banyak baris dalam grup baris dan ukuran grup baris.
Ketika jumlah baris yang dihapus dalam grup baris bertambah menjadi persentase besar dari total baris, tabel menjadi kurang efisien. Bangun ulang indeks penyimpan kolom untuk mengurangi ukuran tabel, mengurangi I/O disk yang diperlukan untuk membaca tabel. Untuk membangun kembali indeks penyimpan kolom, gunakan REBUILD klausa ALTER INDEX pernyataan.
Penyimpan kolom yang dapat diperbarui terlebih dahulu menyisipkan data baru ke dalam grup baris terbuka, yang dalam format rowstore, dan juga kadang-kadang disebut sebagai tabel delta. Setelah grup baris terbuka penuh, statusnya berubah menjadi CLOSED. Grup baris tertutup dikompresi ke dalam format penyimpan kolom oleh penggerak tuple dan status berubah menjadi COMPRESSED. Penggerak tuple adalah proses latar belakang yang secara berkala bangun dan memeriksa apakah ada grup baris tertutup yang siap dikompresi ke dalam grup baris penyimpan kolom. Penggerak tuple juga membatalkan alokasi grup baris tempat setiap baris dihapus. Grup baris yang dibatalkan alokasinya ditandai sebagai TOMBSTONE. Untuk segera menjalankan penggerak tuple, gunakan REORGANIZE klausa ALTER INDEX pernyataan.
Saat grup baris penyimpan kolom terisi, grup tersebut dikompresi, dan berhenti menerima baris baru. Saat Anda menghapus baris dari grup terkompresi, baris tersebut tetap ada tetapi ditandai sebagai dihapus. Pembaruan untuk grup terkompresi diimplementasikan sebagai penghapusan dari grup terkompresi, dan sisipkan ke grup yang terbuka.
Izin
Mengembalikan informasi untuk tabel jika pengguna memiliki VIEW DEFINITION izin pada tabel.
Visibilitas metadata dalam tampilan katalog terbatas pada keamanan yang dimiliki pengguna, atau di mana pengguna diberikan beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi visibilitas metadata.
Contoh
Contoh berikut menggabungkan sys.column_store_row_groups tampilan dan tampilan sistem lainnya untuk mengembalikan informasi tentang indeks penyimpan kolom berkluster. Kolom percent_full adalah perkiraan efisiensi grup baris.
SELECT i.object_id,
OBJECT_SCHEMA_NAME(i.object_id) AS schema_name,
OBJECT_NAME(i.object_id) AS table_name,
i.name AS index_name,
i.type_desc AS index_type_desc,
rg.partition_number,
rg.row_group_id,
rg.state_description,
rg.total_rows,
rg.deleted_rows,
rg.size_in_bytes,
100 * (rg.total_rows - ISNULL(rg.deleted_rows, 0)) / total_rows AS percent_full
FROM sys.indexes AS i
INNER JOIN sys.column_store_row_groups AS rg
ON i.object_id = rg.object_id
AND i.index_id = rg.index_id
WHERE INDEXPROPERTY(i.object_id, i.name, 'IsClustered') = 1
ORDER BY schema_name, table_name, index_name, row_group_id;
Untuk informasi selengkapnya, lihat Memeriksa fragmentasi indeks penyimpan kolom.