sys.column_store_row_groups (T-SQL)
Berlaku untuk: SQL Server 2012 (11.x) dan Azure SQL Managed Instance yang lebih baru
Menyediakan informasi indeks penyimpan kolom berkluster berdasarkan per segmen untuk membantu administrator membuat keputusan manajemen sistem. 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 untuk tabel yang memiliki indeks penyimpan kolom ini. |
partition_number | int | ID partisi tabel yang menyimpan grup baris row_group_id. Anda dapat menggunakan partition_number untuk menggabungkan DMV ini ke sys.partitions. |
row_group_id | int | Nomor grup baris yang terkait dengan grup baris ini. Ini unik dalam partisi. -1 = ekor tabel dalam memori. |
delta_store_hobt_id | bigint | hobt_id untuk grup baris TERBUKA di penyimpanan delta. NULL jika grup baris tidak berada di penyimpanan delta. NULL untuk ekor tabel dalam memori. |
state | tinyint | Nomor ID yang terkait dengan state_description. 0 = TIDAK TERLIHAT 1 = BUKA 2 = TERTUTUP 3 = TERKOMPRESI 4 = BATU NISAN |
state_description | nvarchar(60) | Deskripsi status persisten grup baris: INVISIBLE -Segmen terkompresi tersembunyi dalam proses dibangun dari data di penyimpanan delta. Tindakan baca akan 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 rekaman baru. Grup baris terbuka masih dalam format rowstore dan belum dikompresi ke format penyimpan kolom. CLOSED - Grup baris yang telah diisi, tetapi belum dikompresi oleh proses penggerak tuple. TERKOMPRESI - Grup baris yang telah diisi dan dikompresi. |
total_rows | bigint | Total baris yang disimpan secara fisik dalam grup baris. Beberapa mungkin telah dihapus tetapi masih disimpan. Jumlah maksimum baris dalam grup baris adalah 1.048.576 (heksadesimal FFFFF). |
deleted_rows | bigint | Total baris dalam grup baris yang ditandai dihapus. Ini selalu 0 untuk grup baris DELTA. |
size_in_bytes | bigint | Ukuran dalam byte semua data dalam grup baris ini (tidak termasuk metadata atau kamus bersama), untuk grup baris DELTA dan COLUMNSTORE. |
Keterangan
Mengembalikan satu baris untuk setiap grup baris penyimpan kolom untuk setiap tabel yang memiliki indeks penyimpan kolom berkluster atau non-kluster.
Gunakan sys.column_store_row_groups untuk menentukan jumlah baris yang disertakan 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 opsi BANGUN ULANG dari pernyataan ALTER INDEX .
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 TERTUTUP. Grup baris tertutup dikompresi ke dalam format penyimpan kolom oleh penggerak tuple dan status berubah menjadi TERKOMPRESI. 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 telah dihapus. Grup baris yang dibatalkan alokasinya ditandai sebagai TOMBSTONE. Untuk segera menjalankan penggerak tuple, gunakan opsi REORGANIZE dari pernyataan ALTER INDEX .
Saat grup baris penyimpan kolom telah terisi, grup tersebut dikompresi, dan berhenti menerima baris baru. Saat baris dihapus 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 tabel sys.column_store_row_groups ke tabel sistem lain untuk mengembalikan informasi tentang tabel tertentu. Kolom terhitung PercentFull
adalah perkiraan efisiensi grup baris. Untuk menemukan informasi pada satu tabel, hapus tanda hubung komentar di depan klausa WHERE dan berikan nama tabel.
SELECT i.object_id, object_name(i.object_id) AS TableName,
i.name AS IndexName, i.index_id, i.type_desc,
CSRowGroups.*,
100*(total_rows - ISNULL(deleted_rows,0))/total_rows AS PercentFull
FROM sys.indexes AS i
JOIN sys.column_store_row_groups AS CSRowGroups
ON i.object_id = CSRowGroups.object_id
AND i.index_id = CSRowGroups.index_id
--WHERE object_name(i.object_id) = '<table_name>'
ORDER BY object_name(i.object_id), i.name, row_group_id;
Lihat juga
Tampilan Katalog Objek (Transact-SQL)
Tampilan Katalog (Transact-SQL)
Mengkueri TANYA JAWAB Umum Katalog Sistem SQL Server
sys.columns (Transact-SQL)
sys.all_columns (T-SQL)
sys.computed_columns (T-SQL)
Panduan Indeks Penyimpan Kolom
sys.column_store_dictionaries (T-SQL)
sys.column_store_segments (T-SQL)