Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sklad v Microsoft Fabric
SQL databáze v Microsoft Fabric
Seznamte se s funkcemi columnstore dostupnými na různých platformách SQL a verzích SQL Serveru.
Souhrn funkcí pro vydané verze produktů
Tato tabulka shrnuje klíčové funkce pro indexy columnstore a produkty, ve kterých jsou k dispozici.
Dostupnost funkcí ve službě Azure SQL Managed Instance se zásadami aktualizace SQL Serveru najdete ve sloupci odpovídající verze SQL Serveru.
| Funkce Columnstore indexu | SQL Server 2016 (13.x)1 | SQL Server 2017 (14.x) | SQL Server 2019 (15.x) | SQL Server 2022 (16.x) | SQL Server 2025 (17.x) | Azure SQL Database2 a Azure SQL Managed InstanceAUTD | Azure Synapse Analytics a datový sklad v Microsoft Fabric |
|---|---|---|---|---|---|---|---|
| Provádění dávkového režimu pro vícevláknové dotazy3 | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Provádění dávkového režimu pro jednovláknové dotazy | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Možnost komprese archivu | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Izolace snímků a režim čtení po potvrzení snímků | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Určení indexu columnstore při vytváření tabulky | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| AlwaysOn podporuje indexy columnstore. | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Sekundární čitelná replika Always On podporuje neklastrovaný columnstore index jen pro čtení. | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| AlwaysOn čitelná sekundární databáze podporuje aktualizovatelné columnstore indexy. | Ano | Ano | Ano | Ano | Ano | Ne | Ne |
| Index neklastrovaného sloupového úložiště pouze pro čtení na haldě nebo B-stromu | Ano4 | Ano4 | Ano4 | Ano4 | Ano4 | Ano4 | Ano4 |
| Aktualizovatelný neklastrovaný sloupcový index v haldě nebo B-stromu | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Další indexy B-tree jsou povoleny na haldě nebo na B-tree, které mají neklastrovaný columnstore index. | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Aktualizovatelný sloupcový clusterovaný index | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Index B-tree v clusterovaném sloupcovém indexu | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Index Columnstore v tabulce optimalizované pro paměť | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Definice indexu columnstore bez clusteru podporuje použití filtrované podmínky. | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
Možnost zpoždění komprese pro indexy sloupcového úložiště v CREATE TABLE a ALTER TABLE |
Ano | Ano | Ano | Ano | Ano | Ano | Ano |
| Podpora typu nvarchar(max) | Ne | Ano | Ano | Ano | Ano | Ano | č5 |
| Index columnstore může mít neuložený počítaný sloupec. | Ne | Ano | Ano | Ano | Ano | Ne | Ne |
| Podpora sloučení tuplů na pozadí | Ne | Ne | Ano | Ano | Ano | Ano | Ano |
| Uspořádané clusterované indexy sloupcového úložiště | Ne | Ne | Ne | Ano | Ano | Ano | Ano |
| Seřazené neseskupené indexy sloupcového úložiště | Ne | Ne | Ne | Ne | Ano | Ano | Ne |
| Vytvoření a opětovné sestavení indexu online columnstore | Ne | Ne | Ne | Ano | Ano | Ano | Ne |
| Vytvoření a opětovné sestavení online uspořádaného indexu columnstore | Ne | Ne | Ne | Ne | Ano | Ano | Ne |
1 Pro SQL Server 2016 (13.x) SP1 a novější verze jsou indexy columnstore k dispozici ve všech edicích. Pro SQL Server 2016 (13.x) (před aktualizací SP1) a starší verze jsou indexy columnstore dostupné pouze v edici Enterprise. 2 Pro Azure SQL Database jsou na úrovních DTU Premium, úrovních od S3 výše v DTU Standard a ve všech úrovních vCore dostupné indexy columnstore. 3 Stupeň paralelismu (DOP) pro dávkové režimy operací je omezen na 2 pro SQL Server Standard Edition a 1 pro edice SQL Server Web a Express. Toto omezení se týká indexů columnstore vytvořených prostřednictvím tabulek založených na disku a tabulek optimalizovaných pro paměť. 4 K vytvoření neclusterovaného columnstore indexu jen pro čtení uložte index do skupiny souborů jen pro čtení. 5 Ve vyhrazených fondech SQL se nepodporuje, ale podporuje se v bezserverovém fondu SQL.
SQL Server 2025 (17.x)
SQL Server 2025 (17.x) přidal tyto funkce:
Seřazené neclusterované columnstore zlepšují výkon dotazů v provozních analýzách v reálném čase.
Další informace najdete v sekci Ladění výkonu se seřazenými indexy typu columnstore.
Nyní může být uspořádaný columnstore index (buď clusterovaný nebo neclusterovaný) vytvořen nebo obnoven přímo online.
ONLINE = ONmůžete zadat v příkazu CREATE INDEX, je-li přítomna klauzuleORDER. Další informace o online indexovacích operacích najdete v tématu Provádění operací indexu online.Vylepšili jsme kvalitu řazení pro uspořádané a clusterované indexy columnstore.
Pokud je online vytvořen uspořádaný clusterovaný columnstore index v SQL Serveru 2025 (17.x), algoritmus pro řazení používá
tempdbmísto třídění dat v paměti. PokudMAXDOPpro sestavení indexu je 1, vytvoří sestavení plně uspořádaný clusterovaný index columnstore, který nemá překrývající se segmenty. To může zlepšit výkon dotazů pomocí indexu. Sestavení indexu však může trvat déle kvůli dalším vstupně-výstupním operacím potřebným pro přetékání dotempdb. Pokud již existuje clusterovaný index columnstore, mohou jej dotazy nadále používat i během plně uspořádané online rekonstrukce indexu.Další informace naleznete v tématu Omezení překrývání segmentů a zlepšení výkonu dotazů.
Vylepšené operace zmenšení databáze a souborů
V předchozích verzích SQL Serveru platí, že pokud clusterovaný index columnstore obsahuje všechny sloupce s datovými typy LOB, jako jsou varchar(max), nvarchar(max), varbinary(max), datové stránky používané těmito sloupci nelze přesunout operacemi zmenšení. V důsledku toho může být zmenšení méně efektivní při uvolnění místa v datových souborech.
V SQL Serveru 2025 (17.x) mohou oba příkazy
DBCC SHRINKDATABASEaDBCC SHRINKFILEpřesouvat datové stránky používané sloupci LOB v columnstore indexech.
SQL Server 2022 (16.x)
SQL Server 2022 (16.x) přidal tyto funkce:
- Seřazené indexy columnstore v clusteru zlepšují výkon dotazů na základě seřazených predikátů sloupců. Seřazené columnstore indexy mohou zlepšit výkon tím, že úplně přeskočí segmenty dat. To může výrazně snížit počet I/O operací potřebných k dokončení dotazů na columnstore data. Další informace naleznete v tématu odstranění segmentu. Další informace najdete v článku CREATE COLUMNSTORE INDEX a Ladění výkonu pomocí uspořádaných indexů columnstore.
- Pushdown predikátu s eliminací skupin řádků v clusterovaných úložištích columnstore využívá mezní hodnoty k optimalizaci prohledávání řetězců. Všechny indexy columnstore využívají rozšířené odstranění segmentů podle datového typu. Počínaje SQL Serverem 2022 (16.x) se tyto možnosti odstranění segmentů rozšiřují na datové typy řetězců, binárních souborů a GUID a datetimeoffset datový typ pro škálování větší než dvě. Dříve se odstranění segmentu columnstore použilo pouze na číselné datové typy, datum a čas a datetimeoffset datový typ s měřítkem menší nebo rovnou dvěma. Po upgradu na verzi SQL Serveru, která podporuje eliminaci minimálních/maximálních segmentů řetězce (SQL Server 2022 (16.x) a novějších verzí), nebude index columnstore tuto funkci využívat, dokud se nepřestaví pomocí
ALTER INDEX REBUILDneboCREATE INDEX WITH (DROP_EXISTING = ON). - Odstranění skupiny řádků v columnstore pro předponu
LIKEv predikátech, napříkladcolumn LIKE 'string%'. PoužitíLIKEbez předpony, jako jecolumn LIKE '%string', není podporováno pro vyloučení segmentů. - Další informace o přidaných funkcích najdete v tématu Novinky v systému SQL Server 2022.
SQL Server 2019 (15.x)
SQL Server 2019 (15.x) přidává tyto nové funkce:
Functional
Počínaje SQL Serverem 2019 (15.x) pomáhá přesouvač n-tic úlohou slučování na pozadí, která automaticky komprimuje menší otevřené rozdílové skupiny řádků, které existovaly určitou dobu dle interní prahové hodnoty, nebo slučuje komprimované skupiny řádků, ze kterých byl smazán velký počet řádků. Dříve byla potřeba operace změny uspořádání indexu ke sloučení skupin řádků s částečně odstraněnými daty. To v průběhu času zlepšuje kvalitu indexu columnstore.
SQL Server 2017 (14.x)
SQL Server 2017 (14.x) přidává tyto nové funkce.
Functional
- SQL Server 2017 (14.x) podporuje nepersistované počítané sloupce v clusterovaných indexech columnstore. Persistentní počítané sloupce nejsou podporovány v clusterovaných indexech columnstore. Ve výpočtovém sloupci nemůžete vytvořit neklastrovaný sloupcový index.
SQL Server 2016 (13.x)
SQL Server 2016 (13.x) přidává klíčová vylepšení, která zlepšují výkon a flexibilitu indexů columnstore. Tato vylepšení vylepšují scénáře datových skladů a umožňují provozní analýzy v reálném čase.
Functional
Tabulka rowstore může mít jeden neklastrovaný aktualizovatelný index columnstore. Dříve byl neklastrovaný columnstore index jen pro čtení.
Definice indexu columnstore bez clusteru podporuje použití filtrované podmínky. Pokud chcete minimalizovat dopad na výkon přidávání indexu columnstore v tabulce OLTP, použijte filtrovanou podmínku k vytvoření neclusterovaného indexu columnstore pouze na studená data provozní úlohy.
Tabulka v paměti může mít jeden sloupcový index. Můžete ji vytvořit při vytvoření tabulky nebo ji později přidat pomocí ALTER TABLE. Dříve mohla mít index columnstore pouze tabulka založená na disku.
Clusterovaný index columnstore může mít jeden nebo více neclusterovaných indexů rowstore. Index columnstore dříve nepodporuje neclusterované indexy. SQL Server automaticky udržuje neclusterované indexy pro operace DML.
Podpora primárních klíčů a cizích klíčů pomocí B-stromového indexu k vynucení těchto omezení u clusterovaného indexu columnstore.
Sloupcové indexy mají možnost zpoždění komprese, která minimalizuje dopad transakční zátěže na provozní analýzu v reálném čase. Tato možnost umožňuje často měnit řádky tak, aby se stabilizovaly před jejich komprimací do columnstore. Podrobnosti najdete v CREATE COLUMNSTORE INDEX a Začínáme s indexy columnstore pro provozní analýzy v reálném čase.
Výkon pro úroveň kompatibility databáze 120 nebo 130
Indexy columnstore podporují úroveň izolace s potvrzeným čtením snímků (RCSI) a úroveň izolace snímků (SI). To umožňuje transakční konzistentní analytické dotazy bez zámků.
Columnstore podporuje defragmentaci indexu odebráním odstraněných řádků bez nutnosti explicitně znovu sestavit index. Příkaz
ALTER INDEX ... REORGANIZEjako online operace odebere odstraněné řádky z columnstore na základě interně definovaných zásad.Na sekundární replice s možností čtení AlwaysOn lze zpřístupnit indexy columnstore. Výkon provozních analýz můžete zlepšit přesměrováním analytických dotazů na sekundární repliku AlwaysOn.
Agregace Pushdown vypočítá agregační funkce
MIN,MAX,SUM,COUNTaAVGběhem prohledávání tabulek, když datový typ nepoužívá více než 8 bajtů a není datový typ řetězce. Agregační propad je podporován s klauzulíGROUP BYi bez ní pro seskupené columnstore indexy i neseskupené columnstore indexy. Na SQL Serveru je toto vylepšení vyhrazené pro edici Enterprise.Propagace predikátu řetězců urychlí dotazy, které porovnávají řetězce typu varchar/char nebo nvarchar/nchar. To platí pro běžné relační operátory a zahrnuje operátory, jako jsou
LIKE, které používají rastrové filtry. Toto pracuje se všemi podporovanými kolacemi. Na SQL Serveru je toto vylepšení vyhrazené pro edici Enterprise.Vylepšení operací dávkového režimu s využitím hardwarových funkcí založených na vektorech Databázový stroj detekuje úroveň podpory procesoru pro rozšíření AVX 2 (Advanced Vector Extensions) a SSE 4 (Streaming SIMD Extensions 4) a v případě podpory je používá. Na SQL Serveru je toto vylepšení vyhrazené pro edici Enterprise.
Výkon pro úroveň kompatibility databáze 130
Podpora spouštění nového dávkového režimu pro dotazy pomocí některé z těchto operací:
SORT- Agregáty s více různými funkcemi. Příklady:
COUNT/COUNT,AVG/SUM,CHECKSUM_AGG,STDEV/STDEVP - Agregační funkce oken:
COUNT,COUNT_BIG,SUM,AVG,MIN,MAXaCLR - Agregace definované uživatelem okna:
CHECKSUM_AGG,STDEV,STDEVP,VAR,VARPaGROUPING - Analytické funkce agregace oken:
LAG,LEAD,FIRST_VALUE,LAST_VALUE,PERCENTILE_CONT,PERCENTILE_DISC,CUME_DISTaPERCENT_RANK
Jednovláknové dotazy spuštěné v
MAXDOP 1nebo se sériovým plánem dotazu jsou spouštěny v dávkovém režimu. Dříve byly dávkovým zpracováním spouštěny pouze vícevláknové dotazy.Dotazy na tabulky optimalizované pro paměť mohou mít paralelní plány v režimu SQL InterOp jak při přístupu k datům v úložišti řádků, tak v indexu sloupcového úložiště.
Supportability
Tato systémová zobrazení jsou pro columnstore nová:
- sys.column_store_row_groups
- sys.dm_column_store_object_pool
- sys.dm_db_column_store_row_group_operational_stats
- sys.dm_db_column_store_row_group_physical_stats
- sys.dm_db_index_operational_stats
- sys.dm_db_index_physical_stats
- sys.internal_partitions
Tyto dynamické správy založené na PROTOKOLU OLTP v paměti obsahují aktualizace pro columnstore:
- sys.dm_db_xtp_hash_index_stats
- sys.dm_db_xtp_index_stats
- sys.dm_db_xtp_memory_consumers
- sys.dm_db_xtp_nonclustered_index_stats
- sys.dm_db_xtp_object_stats
- sys.dm_db_xtp_table_memory_stats
Limitations
- V případě tabulek v paměti musí index columnstore obsahovat všechny sloupce; index columnstore nemůže mít filtrovanou podmínku.
- V případě tabulek v paměti se dotazy na indexy columnstore spouští pouze v režimu spolupráce, a ne v nativním režimu kompilace. Paralelní spouštění se podporuje.
Známé problémy
Platí pro: SQL Server 2022 (16.x) a starší verze, Azure SQL Managed Instance2022
- Datové stránky používané sloupci LOB (varbinary(max), varchar(max), a nvarchar(max)) v komprimovaných segmentech columnstore nelze přesouvat pomocí
DBCC SHRINKDATABASEaniDBCC SHRINKFILE. Tento problém je vyřešený v SYSTÉMU SQL Server 2025 (17.x).
SQL Server 2014 (12.x)
SQL Server 2014 (12.x) zavedl clusterovaný index columnstore jako primární formát úložiště. Tato možnost umožňovala pravidelné načítání a také operace aktualizace, odstranění a vkládání.
- Tabulka může jako primární úložiště tabulek použít clusterovaný index columnstore. V tabulce nejsou povolené žádné další indexy, ale clusterovaný index columnstore je aktualizovatelný, takže můžete provádět pravidelné načítání a provádět změny jednotlivých řádků.
- Neclusterovaný index columnstore má nadále stejné funkce jako v SQL Serveru 2012 (11.x) s výjimkou dalších operátorů, které se teď dají spustit v dávkovém režimu. Stále se nedá aktualizovat jinak než opětovným sestavením nebo přepínáním oddílů. Neclusterovaný index columnstore je podporován pouze v tabulkách založených na disku, nikoli v tabulkách v paměti.
- Clusterovaný a neklastrovaný index columnstore má možnost archivní komprese, která dále komprimuje data. Možnost archivace je užitečná pro zmenšení velikosti dat v paměti i na disku, ale snižuje výkon dotazů. Funguje dobře pro data, ke kterým dochází zřídka.
- Clusterovaný index columnstore a neclusterovaný index columnstore fungují velmi podobným způsobem, používají stejný formát sloupcového úložiště, stejný modul zpracování dotazů a stejnou sadu zobrazení dynamické správy. Rozdíl je mezi primárními a sekundárními typy indexů a neklastrovaný columnstore index je pouze pro čtení.
- Tyto operátory se spouštějí v dávkovém režimu pro dotazy s více vlákny: prohledávání, filtrování, projekce, spojení, seskupení a sjednocení všech.
SQL Server 2012 (11.x)
SQL Server 2012 (11.x) zavedl neclusterovaný index columnstore jako další typ indexu pro tabulky rowstore a dávkové zpracování dotazů na data columnstore.
- Tabulka typu rowstore může mít jeden neklastrovaný index columnstore.
- Columnstore index je pouze pro čtení. Po vytvoření indexu columnstore nemůžete tabulku aktualizovat podle
INSERTDELETEoperací aUPDATEoperací. Pokud chcete tyto operace provést, musíte index odstranit, aktualizovat tabulku a znovu sestavit index columnstore. Do tabulky můžete načíst další data pomocí přepínání oddílů (partition switching). Výhodou přepínání oddílů je, že můžete načíst data bez odstranění a opětovného sestavení indexu "columnstore". - Index columnstore vždy vyžaduje dodatečné úložiště, obvykle o dalších 10% více ve srovnání s řádkovým úložištěm, protože ukládá kopii dat.
- Dávkové zpracování poskytuje 2x nebo vyšší výkon dotazů, ale je k dispozici pouze pro paralelní spouštění dotazů.
Související obsah
- Indexy columnstore – pokyny k návrhu
- columnstore indexy – pokyny pro načítání dat
- Indexy columnstore – výkon dotazů
- Začněte s indexy columnstore pro provozní analýzy v reálném čase
- Sloupcové indexy v datových skladech
- Optimalizace údržby indexů za účelem zlepšení výkonu dotazů a snížení spotřeby prostředků