gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-database in Microsoft Fabric
Meer informatie over welke columnstore-functies beschikbaar zijn voor elke versie van SQL Server en de nieuwste versies van SQL Database, Azure Synapse Analytics en Analytics Platform System (PDW).
Deze tabel bevat een overzicht van de belangrijkste functies voor columnstore-indexen en de producten waarin ze beschikbaar zijn.
Kolomopslagindexfunctie | SQL Server 2012 (11.x) | SQL Server 2014 (12.x) | SQL Server 2016 (13.x)1 | SQL Server 2017 (14.x) | SQL Server 2019 (15.x) | SQL Server 2022 (16.x) | SQL Database1 | Toegewezen SQL-pool van Azure Synapse Analytics |
---|---|---|---|---|---|---|---|---|
Batchmodus uitvoeren voor query's met meerdere threads2 | ja | ja | ja | ja | ja | ja | ja | ja |
Uitvoering van batchmodus voor query's met één thread | ja | ja | ja | ja | ja | ja | ||
Optie archiveringscompressie | ja | ja | ja | ja | ja | ja | ja | |
Isolatie van momentopnamen en isolatie van vastgelegde momentopnamen | ja | ja | ja | ja | ja | ja | ||
Columnstore-index opgeven bij het maken van een tabel | ja | ja | ja | ja | ja | ja | ||
AlwaysOn ondersteunt columnstore-indexen | ja | ja | ja | ja | ja | ja | ja | ja |
Always On leesbare secundaire replica ondersteunt alleen-lezen niet-geclusterde columnstore-index | ja | ja | ja | ja | ja | ja | ja | ja |
AlwaysOn leesbare secundaire ondersteunt updatebare columnstore-indexen | ja | ja | ja | ja | ||||
Alleen-lezen columnstore-index zonder clustering op heap of B-structuur | ja | ja | Ja 3 | Ja 3 | Ja 3 | Ja 3 | Ja 3 | Ja 3 |
Updatebare niet-geclusterde columnstore-index op heap of B-tree | ja | ja | ja | ja | ja | ja | ||
Aanvullende B-tree-indexen zijn toegestaan op een heap of B-tree met een niet-geclusterde columnstore-index. | ja | ja | ja | ja | ja | ja | ja | ja |
Updatebare geclusterde columnstore-index | ja | ja | ja | ja | ja | ja | ja | |
B-tree index op een geclusterde columnstore index | ja | ja | ja | ja | ja | ja | ||
Columnstore-index voor een tabel die is geoptimaliseerd voor geheugen | ja | ja | ja | ja | ja | ja | ||
Niet-geclusterde columnstore-indexdefinitie ondersteunt het gebruik van een gefilterde voorwaarde | ja | ja | ja | ja | ja | ja | ||
Optie voor compressievertraging voor columnstore-indexen in CREATE TABLE en ALTER TABLE |
ja | ja | ja | ja | ja | ja | ||
Ondersteuning voor het type nvarchar(max) | ja | ja | ja | ja | geen 4 | |||
Columnstore-index kan een niet-persistente berekende kolom bevatten | ja | ja | ja | |||||
Ondersteuning voor tuple mover-achtergrondsamenvoeging | ja | ja | ja | ja | ||||
Geordende geclusterde columnstore-indexen | ja | ja | ja | |||||
Geordende niet-geclusterde columnstore-indexen | ja |
1 Voor SQL Database zijn columnstore-indexen beschikbaar in Azure SQL Database DTU Premium-lagen, DTU Standard-lagen - S3 en hoger, en alle vCore-lagen. Voor SQL Server 2016 (13.x) SP1 en latere versies zijn columnstore-indexen beschikbaar in alle edities. Voor SQL Server 2016 (13.x) (vóór SP1) en eerdere versies zijn columnstore-indexen alleen beschikbaar in Enterprise Edition.
2 De mate van parallelle uitvoering (DOP) voor batchmodus bewerkingen is beperkt tot 2 voor SQL Server Standard Edition en 1 voor SQL Server Web- en Express-edities. Deze beperking verwijst naar columnstore-indexen die zijn gemaakt via schijftabellen en tabellen die zijn geoptimaliseerd voor geheugen.
3 Als u een alleen-lezen niet-geclusterde columnstore-index wilt maken, slaat u de index op in een alleen-lezen bestandsgroep.
4 Niet ondersteund in toegewezen SQL-pools, maar wordt ondersteund in een serverloze SQL-pool.
SQL Server 2022 (16.x) heeft deze functies toegevoegd.
Geordende columnstore-indexen verbeteren de prestaties voor query's op basis van geordende kolompredicaten. Geordende columnstore-indexen kunnen de prestaties verbeteren door segmenten van gegevens helemaal over te slaan. Dit kan de IO die nodig is voor het voltooien van query's op columnstore-gegevens drastisch verminderen. Zie segmentuitschakelingvoor meer informatie. Geordende columnstore-indexen voor clusters zijn beschikbaar in SQL Server 2022 (16.x). Voor meer informatie, zie CREATE COLUMNSTORE INDEX en Performance tuning met geordende columnstore indexen.
Predicaat pushdown met geclusterde columnstore-rijgroepverwijdering van tekenreeksen maakt gebruik van grenswaarden om tekenreekszoekopdrachten te optimaliseren. Alle columnstore-indexen profiteren van verbeterde segmentuitschakeling per gegevenstype. Vanaf SQL Server 2022 (16.x) zijn deze segmentuitschakelingsmogelijkheden uitgebreid tot tekenreeks-, binaire en GUID-gegevenstypen en het gegevenstype datetimeoffset voor schaal groter dan twee. Voorheen was kolomopslagsegmenteliminatie alleen van toepassing op numerieke gegevenstypen, datum- en tijdgegevenstypen, en het gegevenstype datetimeoffset met een schaal kleiner dan of gelijk aan twee. Nadat u een upgrade hebt uitgevoerd naar een versie van SQL Server die ondersteuning biedt voor het verwijderen van tekenreeksen min/max segment (SQL Server 2022 (16.x) en latere versies), profiteert de columnstore-index pas van deze functie als deze opnieuw wordt opgebouwd met behulp van een REBUILD of DROP/CREATE.
Zie Wat is er nieuw in SQL Server 2022voor meer informatie over toegevoegde functies.
Sql Server 2019 (15.x) voegt deze nieuwe functies toe:
Vanaf SQL Server 2019 (15.x) wordt de tuple-mover geholpen door een taak voor het samenvoegen van achtergronden waarmee automatisch kleinere OPEN Delta-rijgroepen worden gecomprimeerd die al enige tijd bestaan, zoals bepaald door een interne drempelwaarde, of worden GECOMPRIMEERDE rijgroepen samengevoegd van waaruit een groot aantal rijen is verwijderd. Voorheen was een herindeling van een index nodig om rijgroepen samen te voegen met gedeeltelijk verwijderde gegevens. Dit verbetert de kwaliteit van de columnstore-index in de loop van de tijd.
SQL Server 2017 (14.x) voegt deze nieuwe functies toe.
SQL Server 2016 (13.x) voegt belangrijke verbeteringen toe om de prestaties en flexibiliteit van columnstore-indexen te verbeteren. Deze verbeteringen verbeteren scenario's voor datawarehousing en maken realtime operationele analyses mogelijk.
Een rowstore-tabel kan één updatebare niet-geclusterde columnstore-index hebben. Voorheen was de niet-geclusterde columnstore-index alleen lezen.
De niet-geclusterde columnstore-indexdefinitie ondersteunt het gebruik van een gefilterde voorwaarde. Als u de gevolgen voor de prestaties van het toevoegen van een columnstore-index aan een OLTP-tabel wilt minimaliseren, gebruikt u een gefilterde voorwaarde om een niet-geclusterde columnstore-index te maken op alleen de koude gegevens van uw operationele workload.
Een tabel in het geheugen kan één columnstore-index hebben. U kunt deze maken wanneer de tabel wordt gemaakt of later toevoegen met ALTER TABLE (Transact-SQL). Voorheen kon alleen een tabel op basis van een schijf een columnstore-index hebben.
Een geclusterde columnstore-index kan een of meer niet-geclusterde rowstore-indexen hebben. Voorheen biedt de columnstore-index geen ondersteuning voor niet-geclusterde indexen. SQL Server onderhoudt automatisch de niet-geclusterde indexen voor DML-bewerkingen.
Ondersteuning voor primaire sleutels en vreemde sleutels met behulp van een B-tree-index om deze beperkingen af te dwingen op een geclusterde columnstore-index.
Columnstore-indexen hebben een compressievertragingsoptie waarmee de impact van de transactionele workload op realtime operationele analyses wordt geminimaliseerd. Met deze optie kunnen rijen die vaak veranderen eerst stabiliseren voordat ze in de columnstore worden gecomprimeerd. Zie CREATE COLUMNSTORE INDEX (Transact-SQL) en Aan de slag met Columnstore voor realtime operationele analysesvoor meer informatie.
Columnstore-indexen bieden ondersteuning voor het lezen van vastgelegde isolatieniveau voor momentopnamen (RCSI) en isolatie van momentopnamen (SI). Dit maakt transactioneel consistente analytische query's mogelijk zonder vergrendelingen.
Columnstore ondersteunt indexdefragmentatie door verwijderde rijen te verwijderen zonder dat de index expliciet opnieuw hoeft te worden opgebouwd. De ALTER INDEX ... REORGANIZE
-instructie verwijdert verwijderde rijen, op basis van een intern gedefinieerd beleid, uit de columnstore als online bewerking.
Columnstore-indexen hebben toegang tot een leesbare secundaire replica met AlwaysOn. U kunt de prestaties voor operationele analyses verbeteren door analysequery's naar een secundaire AlwaysOn-replica te offloaden.
Aggregate Pushdown berekent de aggregatiefuncties MIN
, MAX
, SUM
, COUNT
en AVG
tijdens tabelscans wanneer het gegevenstype niet meer dan 8 bytes gebruikt en geen tekenreeksgegevenstype is. Geaggregeerde pushdown wordt ondersteund met of zonder GROUP BY
component voor zowel geclusterde columnstore-indexen als niet-geclusterde columnstore-indexen. Op SQL Server is deze uitbreiding gereserveerd voor Enterprise Edition.
Pushdown van tekenreeks-predicaten versnelt query's die tekenreeksen van het type VARCHAR/CHAR of NVARCHAR/NCHAR vergelijken. Dit geldt voor de algemene vergelijkingsoperatoren en omvat operators zoals LIKE
die bitmapfilters gebruiken. Dit werkt met alle ondersteunde sorteringen. Op SQL Server is deze uitbreiding gereserveerd voor Enterprise Edition.
Verbeteringen voor batchmodusbewerkingen door gebruik te maken van op vector gebaseerde hardwaremogelijkheden. De Database Engine detecteert het CPU-ondersteuningsniveau voor AVX 2 (Advanced Vector Extensions) en SSE 4 (Streaming SIMD Extensions 4) hardware-extensies en gebruikt deze indien ondersteund. Op SQL Server is deze uitbreiding gereserveerd voor Enterprise Edition.
Ondersteuning voor het uitvoeren van nieuwe batchmodus voor query's met behulp van een van deze bewerkingen:
SORT
COUNT/COUNT
, AVG/SUM
, CHECKSUM_AGG
, STDEV/STDEVP
COUNT
, COUNT_BIG
, SUM
, AVG
, MIN
, MAX
en CLR
CHECKSUM_AGG
, STDEV
, STDEVP
, VAR
, VARP
en GROUPING
LAG
, LEAD
, FIRST_VALUE
, LAST_VALUE
, PERCENTILE_CONT
, PERCENTILE_DISC
, CUME_DIST
en PERCENT_RANK
Query's met één thread die worden uitgevoerd onder MAXDOP 1
of met een serieel queryplan worden uitgevoerd in de batchmodus. Voorheen werden alleen query's met meerdere threads uitgevoerd met batchuitvoering.
Voor geheugen geoptimaliseerde tabelquery's kunnen parallelle plannen hebben in de SQL InterOp-modus, zowel bij het openen van gegevens in rowstore als in de columnstore-index.
Deze systeemweergaven zijn nieuw voor columnstore:
Deze OLTP-gebaseerde DMVs in het geheugen bevatten updates voor columnstore:
van toepassing op: SQL Server, Azure SQL Database, Azure SQL Managed Instance, toegewezen SQL-pool van Azure Synapse Analytics
SQL Server 2014 (12.x) heeft de geclusterde columnstore-index geïntroduceerd als de primaire opslagindeling. Hierdoor zijn reguliere ladingen toegestaan, evenals update-, verwijder- en invoegbewerkingen.
SQL Server 2012 (11.x) heeft de niet-geclusterde columnstore-index geïntroduceerd als een ander indextype voor rowstore-tabellen en batchverwerking voor query's in columnstore-gegevens.
INSERT
, DELETE
en UPDATE
bewerkingen; Als u deze bewerkingen wilt uitvoeren, moet u de index verwijderen, de tabel bijwerken en de columnstore-index opnieuw opbouwen. U kunt extra gegevens in de tabel laden met behulp van partitiewisseling. Het voordeel van het schakelen tussen partities is dat u gegevens kunt laden zonder de columnstore-index te verwijderen en opnieuw te bouwen.gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertTraining
Module
Prestaties van datawarehouse-query's optimaliseren in Azure Synapse Analytics - Training
Prestaties van datawarehouse-query's optimaliseren in Azure Synapse Analytics