Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
Azure SQL Managed Instance
Bir columnstore indeksindeki her sütun segmenti için bir satır döndürür. Her sıralık grup için bir sütun segmenti vardır. Örneğin, 10 satır grubu ve 34 sütunlu bir tablo 340 satır döndürür.
| Sütun adı | Veri türü | Description |
|---|---|---|
| partition_id | bigint | Bölüm kimliğini gösterir. Bir veritabanında benzersizdir. |
| hobt_id | bigint | Bu columnstore indeksine sahip tablo için heap veya B-tree indeksinin (HoBT) ID'si. |
| column_id | int | columnstore sütununun kimliği. |
| segment_id | int | Satır grubunun kimliği. Geriye dönük uyumluluk için, sütun adı sıralı grup kimliği olmasına rağmen segment_id olarak adlandırılmaya devam eder. Bir segmenti hobt_id <, partition_id, column_id>, <segment_id> kullanarak benzersiz şekilde tanımlayabilirsiniz. |
| version | int | Sütun segmenti formatının bir versiyonu. |
| encoding_type | int | O segment için kullanılan kodlama türü: 1 = VALUE_BASED - sözlüğü olmayan dıcıl/ikili (4'e benzer ve bazı iç varyasyonları var) 2 = VALUE_HASH_BASED - sözlükte ortak değerlere sahip dize olmayan/ikili sütun 3 = STRING_HASH_BASED - sözlükte ortak değerlere sahip dize/ikili sütun 4 = STORE_BY_VALUE_BASED - sözlüksüz dize/ikili 5 = STRING_STORE_BY_VALUE_BASED - sözlüksüz dize/ikili Daha fazla bilgi için Açıklamalar bölümüne bakın. |
| row_count | int | Sıra grubundaki sıra sayısı. |
| has_nulls | int | 1 sütun segmenti null değerlere sahipse. |
| base_id | bigint | Eğer kodlama tipi 1 kullanılıyorsa temel değer ID'si. Eğer kodlama tipi 1 kullanılmıyorsa, base_id -1 olarak ayarlanır. |
| büyüklük | float | Eğer kodlama tip 1 kullanılıyorsa büyüklük. Kodlama tipi 1 kullanılmıyorsa, büyüklük -1 olarak ayarlanır. |
| primary_dictionary_id | int | 0 değeri küresel sözlüğü temsil eder. -1 değeri, bu sütun için oluşturulmuş küresel sözlük olmadığını gösterir. |
| secondary_dictionary_id | int | Sıfır olmayan bir değer, mevcut segmentteki bu sütunun yerel sözlüğüne işaret eder (örneğin, sıra grubu). -1 değeri, bu segment için yerel bir sözlük olmadığını gösterir. |
| min_data_id | bigint | Sütun segmentinde minimum veri kimliği. |
| max_data_id | bigint | Sütun segmentinde maksimum veri kimliği. |
| null_value | bigint | Null'ları temsil etmek için kullanılan değer. |
| on_disk_size | bigint | Segmentin bayt cinsinden boyutu. |
| collation_id | int |
SQL Server 2022 (16.x) ve sonrası sürümler için geçerlidir . Segmentin oluşturulduğu dönemdeki güncel derleme. İç bir ID'ye eşlemeler. Şu anda sadece dahili ve geliştirme için değil. |
| min_deep_data | varbinary(18) |
SQL Server 2022 (16.x) ve sonrası sürümler için geçerlidir . Segment elemesi için kullanılır. 1 Sadece iç kullanım için. |
| max_deep_data | varbinary(18) |
SQL Server 2022 (16.x) ve sonrası sürümler için geçerlidir . Segment elemesi için kullanılır. 1 Sadece iç kullanım için. |
1 SQL Server'ın dizinin min/maksimum segment elemesini destekleyen bir sürümüne (SQL Server 2022 (16.x ve sonrası) min_deep_data yükseltildikten sonra, max_deep_data columnstore indeksi yeniden oluşturulana kadar REBUILD veya DROP/CREATE kullanılarak bu durum devam NULL eder. Yeniden oluşturulduktan sonra, dizinin min/maksimum segment eliminasyonundan fayda sağlayabilecek veri türlerini içeren segmentler veri içerir.
Açıklamalar
Columnstore segment kodlama türü, Veritabanı Motoru tarafından en düşük depolama maliyetini elde etmek amacıyla segment verilerinin analiz edilmesiyle seçilir. Veri çoğunlukla farklıysa, Veritabanı Motoru değer tabanlı kodlama kullanır. Veri çoğunlukla farklı değilse, Veritabanı Motoru hash tabanlı kodlama kullanır. Diziye dayalı ve değer tabanlı kodlama arasındaki seçim, depolanan veri türüyle ilgilidir; ister dizi veri ister ikili veri olsun. Tüm kodlamalar mümkün olduğunda bit paketleme ve run-length kodlamasından faydalanır.
Columnstore segment elemesi, sayısal, tarih ve zaman veri türlerine ve ölçek ikiden küçük veya eşit datetimeoffset veri tipine uygulanır. SQL Server 2022'den (16.x) başlayarak, segment eleme özellikleri ikiden büyük ölçek için dize, ikili, guid veri türleri ve datetimeoffset veri türüne kadar uzanır. Segment eleme, (maxum) veri tipi uzunlukları gibi LOB veri tipleri için geçerli değildir.
Permissions
Tüm sütunlar en azından VIEW DEFINITION masada izin gerektirir. Kullanıcının izni de yoksa aşağıdaki sütunlar geri NULL döner: has_nulls, base_id, magnitudemin_data_idmax_data_idve .null_valueSELECT
Katalog görünümlerindeki meta verilerin görünürlüğü, kullanıcının sahip olduğu veya kullanıcıya bazı izinlerin verildiği güvenli hale getirilebilir öğelerle sınırlıdır. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .
Örnekler
Aşağıdaki sorgu, bir columnstore indeksinin segmentleri hakkında bilgi geri döndürür.
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 ;
GO
Sonraki Adımlar
- nesne kataloğu görünümlerini (Transact-SQL)
- Katalog Görünümleri (Transact-SQL)
- SQL Server Sistem Kataloğunu Sorgulama hakkında SSS
- sys.columns (Transact-SQL)
- sys.all_columns (Transact-SQL)
- sys.computed_columns (Transact-SQL)
- Columnstore Dizinleri Kılavuzu
- sys.column_store_dictionaries (Transact-SQL)