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
Mengembalikan satu baris untuk setiap segmen kolom dalam indeks penyimpan kolom. Ada satu segmen kolom per kolom per grup baris. Misalnya, indeks penyimpan kolom dengan 10 grup baris dan 34 kolom memiliki 340 baris dalam tampilan ini.
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
partition_id |
bigint | Menunjukkan ID partisi. Unik dalam database. |
hobt_id |
bigint | ID indeks timbunan atau pohon B (HoBT) untuk tabel yang memiliki indeks penyimpan kolom ini. |
column_id |
int | ID kolom penyimpan kolom. |
segment_id |
int | ID grup baris. Untuk kompatibilitas mundur, nama kolom terus dipanggil segment_id meskipun ini adalah ID grup baris. Anda dapat mengidentifikasi segmen secara unik menggunakan <hobt_id, partition_id, column_id, segment_id>. |
version |
int | Versi format segmen kolom. |
encoding_type |
int | Jenis pengodean yang digunakan untuk segmen tersebut: 1 = VALUE_BASED - non-string/biner tanpa kamus (mirip dengan 4 dengan beberapa variasi internal) 2 = VALUE_HASH_BASED - kolom non-string/biner dengan nilai umum dalam kamus 3 = STRING_HASH_BASED - kolom string/biner dengan nilai umum dalam kamus 4 = STORE_BY_VALUE_BASED - non-string/biner tanpa kamus 5 = STRING_STORE_BY_VALUE_BASED - string/biner tanpa kamus Untuk informasi selengkapnya, lihat bagian Keterangan. |
row_count |
int | Jumlah baris dalam grup baris. |
has_nulls |
int | 1 jika segmen kolom memiliki NULL. |
base_id |
bigint | ID nilai dasar jika pengodean tipe 1 sedang digunakan. Jika pengodean tipe 1 tidak digunakan, base_id diatur ke -1. |
magnitude |
float | Besaran jika pengodean tipe 1 sedang digunakan. Jika pengodean tipe 1 tidak digunakan, magnitude diatur ke -1. |
primary_dictionary_id |
int | Nilai 0 mewakili kamus global. Nilai -1 menunjukkan bahwa tidak ada kamus global yang dibuat untuk kolom ini. |
secondary_dictionary_id |
int | Nilai bukan nol menunjuk ke kamus lokal untuk kolom ini di segmen saat ini (misalnya, grup baris). Nilai -1 menunjukkan bahwa tidak ada kamus lokal untuk segmen ini. |
min_data_id |
bigint | Hanya untuk penggunaan internal. |
max_data_id |
bigint | Hanya untuk penggunaan internal. |
null_value |
bigint | Nilai yang digunakan untuk mewakili null. |
on_disk_size |
bigint | Ukuran segmen dalam byte. |
collation_id |
int | Kolatasi saat ini ketika segmen dibuat. Memetakan ke ID internal. Hanya untuk penggunaan internal. Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, Azure SQL Database, dan Azure SQL Managed Instance |
min_deep_data |
varbinary(18) | Digunakan untuk eliminasi segmen.1 Hanya untuk penggunaan internal. Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, Azure SQL Database, dan Azure SQL Managed Instance |
max_deep_data |
varbinary(18) | Digunakan untuk eliminasi segmen.1 Hanya untuk penggunaan internal. Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, Azure SQL Database, dan Azure SQL Managed Instance |
1 Setelah meningkatkan ke versi Mesin Database yang mendukung penghapusan segmen min/maks untuk serangkaian jenis data yang diperluas (diperkenalkan di SQL Server 2022 (16.x)), min_deep_data dan max_deep_data hingga NULL indeks penyimpan kolom dibangun kembali menggunakan pernyataan ALTER INDEX ... REBUILD atau CREATE INDEX ... WITH (DROP_EXISTING = ON) .
Keterangan
Jenis pengodean segmen penyimpan kolom dipilih oleh Mesin Database dengan menganalisis data segmen dengan tujuan mencapai biaya penyimpanan terendah. Jika data sebagian besar berbeda, Mesin Database menggunakan pengodean berbasis nilai. Jika data sebagian besar tidak berbeda, Mesin Database menggunakan pengodean berbasis hash. Pilihan antara pengodean berbasis string dan berbasis nilai terkait dengan jenis data yang disimpan, baik data string atau data biner. Semua pengodean memanfaatkan pengodean bit-packing dan run-length jika memungkinkan.
Penghapusan segmen penyimpan kolom berlaku untuk jenis data numerik, tanggal, dan waktu, dan jenis data datetimeoffset dengan skala kurang dari atau sama dengan dua. Mulai SQL Server 2022 (16.x), kemampuan eliminasi segmen diperluas ke jenis data string dan biner, jenis data pengidentifikasi unik , dan jenis data datetimeoffset untuk skala yang lebih besar dari dua. Penghapusan segmen tidak berlaku untuk jenis data LOB seperti varchar(max), nvarchar(max), dan varbinary(max). Untuk informasi selengkapnya, lihat Apa yang baru dalam indeks penyimpan kolom.
Izin
Izin VIEW DEFINITION pada tampilan diperlukan. Kolom berikut mengembalikan NULL kecuali pengguna juga memiliki SELECT izin: has_nulls, , base_idmagnitude, min_data_id, max_data_id, dan null_value.
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
Kueri berikut mengembalikan informasi tentang segmen indeks penyimpan kolom.
SELECT i.name, p.object_id, p.index_id, i.type_desc,
COUNT(*) AS number_of_segments
FROM sys.column_store_segments AS s
INNER JOIN sys.partitions AS p
ON s.hobt_id = p.hobt_id
INNER JOIN sys.indexes AS i
ON p.object_id = i.object_id
WHERE i.type = 5 OR i.type = 6
GROUP BY i.name, p.object_id, p.index_id, i.type_desc;
Konten terkait
- Panduan Indeks Penyimpan Kolom
- Penyetelan performa dengan indeks penyimpan kolom yang diurutkan
- 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)
- sys.column_store_dictionaries (T-SQL)