Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwraca jeden wiersz dla każdego segmentu kolumny w indeksie columnstore. Na każdą kolumnę w grupie wierszy jest jeden segment kolumny. Na przykład indeks magazynu kolumn z 10 grupami wierszy i 34 kolumnami ma 340 wierszy w tym widoku.
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
partition_id |
bigint | Wskazuje identyfikator partycji. Jest unikalny w bazie danych. |
hobt_id |
bigint | ID indeksu kopca lub drzewa B (HoBT) dla tabeli, która posiada ten indeks columnstore. |
column_id |
int | Identyfikator kolumny magazynu kolumn. |
segment_id |
int | Identyfikator grupy wierszy. Dla kompatybilności wstecznej nazwa kolumny nadal jest nazywana segment_id mimo że jest to identyfikator grupy wierszowej. Możesz jednoznacznie zidentyfikować segment przy użyciu polecenia <hobt_id, partition_id, column_id, segment_id>. |
version |
int | Wersja formatu segmentów kolumn. |
encoding_type |
int | Rodzaj kodowania używany dla tego segmentu: 1 = VALUE_BASED – nie-ciągowe/binarne bez słownika (podobnie jak 4, z pewnymi wewnętrznymi wariantami) 2 = VALUE_HASH_BASED - kolumna niebędąca ciągiem lub binarnym o wspólnych wartościach w słowniku 3 = STRING_HASH_BASED - kolumna ciągu/binarnego o wspólnych wartościach w słowniku 4 = STORE_BY_VALUE_BASED – nie-ciągowe/binarne bez słownika 5 = STRING_STORE_BY_VALUE_BASED – ciąg/binarny bez słownika Aby uzyskać więcej informacji, zobacz sekcję Uwagi. |
row_count |
int | Liczba wierszy w grupie wierszy. |
has_nulls |
int | 1, jeśli segment kolumny ma NULLs. |
base_id |
bigint | Identyfikator wartości podstawowej, jeśli używany jest typ kodowania 1. Jeśli typ kodowania 1 nie jest używany, base_id ustawiono wartość -1. |
magnitude |
float | Amplituda, jeśli używa się kodowania typu 1. Jeśli typ kodowania 1 nie jest używany, magnitude ustawiono wartość -1. |
primary_dictionary_id |
int | Wartość 0 oznacza globalny słownik. Wartość -1 oznacza, że nie utworzono globalnego słownika dla tej kolumny. |
secondary_dictionary_id |
int | Wartość niezerowa wskazuje na lokalny słownik dla tej kolumny w bieżącym segmencie (na przykład do grupy wierszy). Wartość -1 oznacza, że nie istnieje lokalny słownik dla tego segmentu. |
min_data_id |
bigint | Tylko do użytku wewnętrznego. |
max_data_id |
bigint | Tylko do użytku wewnętrznego. |
null_value |
bigint | Wartość używana do reprezentowania wartości zerowych. |
on_disk_size |
bigint | Rozmiar segmentu w bajtach. |
collation_id |
int | Aktualna kolekcja w momencie powstania segmentu. Mapuje się na wewnętrzne ID. Tylko do użytku wewnętrznego. Dotyczy: SQL Server 2022 (16.x) i nowsze wersje, Azure SQL Database i Azure SQL Managed Instance |
min_deep_data |
varbinary(18) | Używany do eliminacji segmentów. 1 Tylko do użytku wewnętrznego. Dotyczy: SQL Server 2022 (16.x) i nowsze wersje, Azure SQL Database i Azure SQL Managed Instance |
max_deep_data |
varbinary(18) | Używany do eliminacji segmentów. 1 Tylko do użytku wewnętrznego. Dotyczy: SQL Server 2022 (16.x) i nowsze wersje, Azure SQL Database i Azure SQL Managed Instance |
1 Po uaktualnieniu do wersji aparatu bazy danych obsługującej eliminację minimalnego/maksymalnego segmentu dla rozszerzonego zestawu typów danych (wprowadzonego w programie SQL Server 2022 (16.x)), min_deep_datamax_deep_data i są NULL do czasu odbudowy indeksu magazynu kolumn przy użyciu ALTER INDEX ... REBUILD instrukcji or CREATE INDEX ... WITH (DROP_EXISTING = ON) .
Uwagi
Typ kodowania segmentu magazynu kolumn jest wybierany przez aparat bazy danych, analizując dane segmentu w celu osiągnięcia najniższego kosztu magazynowania. Jeśli dane są w większości odrębne, silnik bazy danych wykorzystuje kodowanie oparte na wartościach. Jeśli dane są w większości nieodznaczone, silnik bazy danych używa kodowania opartego na haszu. Wybór między kodowaniem na podstawie ciągów łańcuchów i wartości zależy od rodzaju przechowywanych danych, czy to danych ciągowych, czy binarnych. Wszystkie kodowania wykorzystują pakowanie bitów i kodowanie długości serii, gdy to możliwe.
Eliminacja segmentu magazynu kolumn dotyczy typów danych liczbowych, dat i godzin oraz typu danych datetimeoffset ze skalowaniem mniejszym lub równym dwóm. Począwszy od programu SQL Server 2022 (16.x), możliwości eliminacji segmentów rozszerzają się na typy ciągów i danych binarnych, unikatowy typ danychidentyfikatora i typ danych datetimeoffset w celu skalowania większego niż dwa. Eliminacja segmentów nie ma zastosowania do typów danych LOB, takich jak varchar(max), nvarchar(max)i varbinary(max). Aby uzyskać więcej informacji, zobacz Co nowego w indeksach columnstore.
Permissions
Wymagane VIEW DEFINITION jest uprawnienie do widoku. Następujące kolumny zwracająNULL, chyba że użytkownik ma SELECT również uprawnienie: has_nulls, , base_id, min_data_idmagnitude, , max_data_idi null_value.
Widoczność metadanych w widokach katalogu jest ograniczona do obiektów, których właścicielem jest użytkownik lub w stosunku do których użytkownik ma jakieś uprawnienia. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.
Przykłady
Następujące zapytanie zwraca informacje o segmentach indeksu columnstore.
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;
Treści powiązane
- Przewodnik po indeksach magazynu kolumn
- Dostrajanie wydajności za pomocą uporządkowanych indeksów magazynu kolumn
- widoki wykazu obiektów (Transact-SQL)
- Widoki Katalogu (Transact-SQL)
- wykonywanie zapytań dotyczących katalogu systemu programu SQL Server — często zadawane pytania
- sys.columns (Transact-SQL)
- sys.all_columns (Transact-SQL)
- sys.computed_columns (Transact-SQL)
- sys.column_store_dictionaries (Transact-SQL)