Az oszlopcentrikus indexek újdonságai

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsRaktár a Microsoft Fabric-benSQL adatbázis a Microsoft Fabric-ben

Megtudhatja, hogy mely oszlopcentrikus funkciók érhetők el az SQL-platformokon és az SQL Server-verziókban.

Funkciók összefoglalása a termékkiadásokhoz

Ez a táblázat az oszlopcentrikus indexek és az elérhető termékek főbb funkcióit foglalja össze.

Az Azure SQL Managed Instance funkcióinak elérhetőségéhez az SQL Server frissítési szabályzatával kapcsolatban tekintse meg az SQL Server megfelelő verziójának oszlopát.

Oszlopalapú index funkció 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 és Azure SQL Managed InstanceAUTD Azure Synapse Analytics és tárház a Microsoft Fabricben
Kötegelt módú végrehajtás többszálú lekérdezésekhez3 Igen Igen Igen Igen Igen Igen Igen
Kötegelt módú végrehajtás egyszálas lekérdezésekhez Igen Igen Igen Igen Igen Igen Igen
Archiválási tömörítési beállítás Igen Igen Igen Igen Igen Igen Igen
Pillanatkép-izoláció és olvasási célú pillanatkép-izoláció Igen Igen Igen Igen Igen Igen Igen
Oszlopboltíves index megadása tábla létrehozásakor Igen Igen Igen Igen Igen Igen Igen
Az Always On támogatja az oszlopcentrikus indexeket Igen Igen Igen Igen Igen Igen Igen
Az Always On olvasható másodlagos támogatja a csak olvasható, nem fürtözött oszlopstore indexet. Igen Igen Igen Igen Igen Igen Igen
Az Always On olvasható másodlagos támogatja a frissíthető oszlop-tárolós indexeket Igen Igen Igen Igen Igen Nem Nem
Írásvédett, nem klaszterezett oszlopos adattárolású index halom vagy B-fa esetén. Igen4 Igen4 Igen4 Igen4 Igen4 Igen4 Igen4
Frissíthető, klasszterezés nélküli oszloptároló index halmon vagy B-fán Igen Igen Igen Igen Igen Igen Igen
További B-fa indexek engedélyezettek olyan halomra vagy B-fára, amely nem klaszteres oszlopalapú indexet tartalmaz. Igen Igen Igen Igen Igen Igen Igen
Frissíthető fürtözött oszlopraktár index Igen Igen Igen Igen Igen Igen Igen
B-fa index egy fürtözött oszlopalapú tár indexen Igen Igen Igen Igen Igen Igen Igen
Memória-optimált táblán oszlopalapú index Igen Igen Igen Igen Igen Igen Igen
A nem klaszterezett oszlopalapú indexdefiníció támogatja szűrt feltétel használatát. Igen Igen Igen Igen Igen Igen Igen
Tömörítési késleltetési lehetőség a CREATE TABLE és ALTER TABLE oszlopcentrikus indexekhez Igen Igen Igen Igen Igen Igen Igen
Nvarchar(max) típus támogatása Nem Igen Igen Igen Igen Igen 5. szám
Az oszlopcentrikus index tartalmazhat nem tartós számított oszlopot. Nem Igen Igen Igen Igen Nem Nem
A Tuple mover háttérbeli egyesítésének támogatása Nem Nem Igen Igen Igen Igen Igen
Rendezett fürtözött oszlopstruktúrájú indexek Nem Nem Nem Igen Igen Igen Igen
Rendezett, nem klaszterezett oszloptárolós indexek Nem Nem Nem Nem Igen Igen Nem
Online oszlopcentrikus index létrehozása és újraépítése Nem Nem Nem Igen Igen Igen Nem
Online rendezett oszlopcentrikus index létrehozása és újraépítése Nem Nem Nem Nem Igen Igen Nem

1 Az SQL Server 2016 (13.x) SP1 és újabb verziói esetén az oszlopcentrikus indexek minden kiadásban elérhetők. Az SQL Server 2016 (13.x) (SP1 előtti) és korábbi verziói esetében az oszlopcentrikus indexek csak az Enterprise kiadás kiadásban érhetők el. 2 Az Azure SQL Database esetében az oszlopcentrikus indexek a prémium DTU szinteken, a DTU Standard szinteken, S3 és afölött, valamint minden vCore szinten érhetők el. 3 A kötegelt módú műveletek párhuzamossági foka (DOP) legfeljebb 2 lehet az SQL Server Standard Edition és 1 az SQL Server Web- és Express Edition-kiadások esetében. Ez a korlátozás lemezalapú táblákon és memóriaoptimalizált táblákon létrehozott oszlopcentrikus indexekre vonatkozik. 4 Írásvédett, nem klaszterezett oszlopcentrikus index létrehozásához tárolja az indexet egy írásvédett fájlcsoportban. 5 Dedikált SQL-készletekben nem támogatott, de kiszolgáló nélküli SQL-készletben támogatott.

SQL Server 2025 (17.x)

Az SQL Server 2025 (17.x) a következő funkciókat adta hozzá:

  • A rendezett nem fürtözött oszloptár javítja a lekérdezési teljesítményt a valós idejű üzleti elemzések során.

    További információ: A teljesítmény finomhangolása rendezett oszlopcentrikus indexekkel.

  • A rendezett (fürtözött vagy nem rendezett) oszlopcentrikus indexek mostantól online is létrehozhatók vagy újraépíthetők.

    A(z) ONLINE = ON utasításban megadhatja a(z) CREATE INDEX elemet, ha a(z) ORDER záradék szerepel. További információ az online indexműveletekről: Indexműveletek online végrehajtása.

  • Javított rendezési minőség a rendezett, fürtözött oszloparchitektúra indexek esetében.

    Az SQL Server 2025 -ben (17.x) a rendezett fürtözött oszlopcentrikus index online létrehozásakor a rendezési algoritmus a memória adatainak rendezése helyett használja tempdb . Ha az index építése során MAXDOP értéke 1, akkor az építés egy teljesen rendezett, fürtözött, oszlopokkal tárolt indexet hoz létre, amelynél nincsenek átfedő szegmensek. Ez javíthatja a lekérdezések teljesítményét az index használatával. Az index építése azonban hosszabb időt vehet igénybe, mert a kiömlésekhez tempdb további I/O szükséges. Ha már létezik fürtözött oszlopcentrikus index, a lekérdezések továbbra is használhatják, amíg a teljes online index-újraépítés folyamatban van.

    További információ: Szegmensfedés csökkentése és a lekérdezési teljesítmény javítása.

  • Továbbfejlesztett adatbázis- és fájlzsugorítási műveletek.

    Az SQL Server korábbi verzióiban, amikor egy fürtözött oszlopcentrikus index tartalmaz minden olyan oszlopot, amely LOB-adattípusokkal rendelkezik , például varchar(max), nvarchar(max), varbinary(max), az oszlopok által használt adatoldalakat a zsugorítási műveletek nem tudják áthelyezni. Ennek eredményeképpen a zsugorítás kevésbé lesz hatékony az adatfájlokban lévő hely visszanyerésében.

    Az SQL Server 2025 -ben (17.x) mind DBCC SHRINKDATABASE a DBCC SHRINKFILE parancsok áthelyezhetik az oszlopcentrikus indexek LOB oszlopai által használt adatoldalakat.

SQL Server 2022 (16.x)

Az SQL Server 2022 (16.x) a következő funkciókat adta hozzá:

  • A rendezett csoportosított oszlopalapú indexek a rendezett oszlop prédikátumok alapján javítják a lekérdezések teljesítményét. A rendezett oszlopcentrikus indexek az adatszegmensek teljes kihagyásával javíthatják a teljesítményt. Ez jelentősen csökkentheti az oszlopcentrikus adatok lekérdezéseihez szükséges I/O-t. További információ a szegmens megszüntetéséről:. További információkért lásd: CREATE COLUMNSTORE INDEX és Teljesítményhangolás rendezett oszloptárindexekkel.
  • A predikátum tolás a fürtözött oszlopcentrikus adattár sorcsoport elhagyásával a határértékek használatával optimalizálja a sztring kereséseket. Az oszlop tároló indexek előnyük származik a szegmensek adattípus szerinti javított eltávolításából. Az SQL Server 2022 -től (16.x) kezdődően ezek a szegmenskivezetési képességek a sztring-, bináris és GUID-adattípusokra, valamint a datetimeoffset adattípusra terjednek ki a kettőnél nagyobb skálázáshoz. Korábban az oszlop-adattárház szegmenseltávolítás csak numerikus, dátum- és időtípusoknál volt alkalmazva, valamint a datetimeoffset adattípusnál, amelynek skálája kisebb vagy egyenlő kettővel. Az SQL Server azon verziójára való frissítés után, amely támogatja a sztringek minimális/maximális szegmenselvonását (SQL Server 2022 (16.x) és újabb verziók), az oszlopcentrikus index nem élvezi ezt a funkciót, amíg újra nincs felépítve a ALTER INDEX REBUILD vagy CREATE INDEX WITH (DROP_EXISTING = ON) használatával.
  • A LIKE predikátumok előtagjának megfelelő oszloptárolós sorcsoportok megszüntetése, például column LIKE 'string%'. A szegmensek megszüntetése nem támogatott a LIKE, például column LIKE '%string'előtag nélküli használata esetén.
  • További információ a hozzáadott funkciókról: Az SQL Server 2022újdonságai.

SQL Server 2019 (15.x)

Az SQL Server 2019 (15.x) a következő új funkciókat adja hozzá:

Functional

Az SQL Server 2019-től (15.x) kezdődően a rekord mozgatását egy háttéregyesítési feladat segíti, amely automatikusan tömöríti a belső küszöbérték által meghatározott egy ideje meglévő kisebb nyitott delta sorcsoportokat, vagy egyesíti a tömörített sorcsoportokat, amelyekből nagy számú sort töröltek. Korábban egy indexátszervezési műveletre volt szükség a sorcsoportok részlegesen törölt adatokkal való egyesítéséhez. Ez idővel javítja az oszlopcentrikus index minőségét.

SQL Server 2017 (14.x)

Az SQL Server 2017 (14.x) hozzáadja ezeket az új funkciókat.

Functional

  • Az SQL Server 2017 (14.x) támogatja a fürtözött oszlopcentrikus indexekben található nem perzisztált számított oszlopokat. A megőrzött számított oszlopok nem támogatottak a fürtözött oszlopcentrikus indexekben. Nem hozható létre nem klaszterezett columnstore index számított oszlopon.

SQL Server 2016 (13.x)

Az SQL Server 2016 (13.x) kulcsfontosságú fejlesztéseket ad hozzá az oszlopcentrikus indexek teljesítményének és rugalmasságának javítása érdekében. Ezek a fejlesztések javítják az adattárházi forgatókönyveket, és lehetővé teszik a valós idejű üzemeltetési elemzést.

Functional

  • Egy soros adattábla egy frissíthető, nem klaszterezett oszlopalapú indexet tartalmazhat. Korábban a nem-clustered columnstore index írásvédett volt.

  • A nem klaszterezett oszlopalapú index definíciója támogatja a szűrt feltétel használatát. Az OLTP-táblához való oszlopraktár index hozzáadásának teljesítményhatásának minimalizálása érdekében hozzon létre egy nem fürtözött oszlopraktár indexet egy szűrt feltétel használatával, kizárólag az operatív munkaterhelés hideg adataira.

  • A memóriában lévő táblák egy oszlopcentrikus indexet tartalmazhatnak. Létrehozhatja a tábla létrehozásakor, vagy később hozzáadhatja a(z) ALTER TABLE használatával. Korábban csak egy lemezalapú tábla rendelkezhetett oszlopcentrikus indexel.

  • A fürtözött oszlopos adattár indexek egy vagy több nem fürtözött soradatbázis-indexet tartalmazhatnak. Korábban az oszlopcentrikus index nem támogatja a nem rendezett indexeket. Az SQL Server automatikusan fenntartja a DML-műveletek nemclustered indexeit.

  • Elsődleges kulcsok és idegen kulcsok támogatása B-fa indexelés alkalmazásával ezek korlátozások érvényesítésére a fürtözött oszlopalapú indexeken.

  • Az oszlopcentrikus indexek tömörítési késleltetési beállítással rendelkeznek, amely minimálisra csökkenti a tranzakciós számítási feladat valós idejű működési elemzésre gyakorolt hatását. Ez a beállítás lehetővé teszi, hogy a gyakran változó sorok stabilizálódjanak, mielőtt tömörítésre kerülnének az oszloptárba. A részletekért tekintse meg CREATE COLUMNSTORE INDEX és ismerkedjen meg az oszlopcentrikus indexekkel a valós idejű üzemeltetési elemzéshez.

Az adatbázis kompatibilitási szintje 120 vagy 130

  • Az oszlopalapú indexek támogatják az olvasási véglegesített pillanatkép-izolációs szintet (RCSI) és a pillanatkép-izolációt (SI). Ez lehetővé teszi a tranzakciós konzisztens elemzési lekérdezéseket zárolás nélkül.

  • A Columnstore úgy támogatja az index töredezettségmentesítését, hogy eltávolítja a törölt sorokat anélkül, hogy explicit módon újra kellene építenie az indexet. A ALTER INDEX ... REORGANIZE utasítás eltávolítja a törölt sorokat egy belsőleg meghatározott szabályzat alapján az oszloptárból online műveletként

  • Az oszlopalapú indexek elérhetők egy Always On olvasható másodlagos replikán. Az operatív elemzések teljesítményét úgy javíthatja, ha az elemzési lekérdezéseket egy Always On másodlagos replikára irányítja ki.

  • Az összesítő pushdown kiszámítja az összesítő függvényeket MIN, MAX, SUM, COUNT és AVG a táblavizsgálatok során, ha az adattípus legfeljebb 8 bájtot használ, és nem karakterlánc adattípus. Az összesített leküldés GROUP BY záradékkal vagy anélkül is támogatott a fürtözött oszlopalapú indexekhez és a nemfürtözött oszlopalapú indexekhez. Az SQL Serveren ez a fejlesztés az Enterprise kiadáshoz van fenntartva.

  • A sztring predikátum leküldése felgyorsítja azokat a lekérdezéseket, amelyek a varchar/char vagy nvarchar/nchar típusú karakterláncokat hasonlítják össze. Ez a gyakori összehasonlító operátorokra vonatkozik, és olyan operátorokat is tartalmaz, mint például LIKE, amelyek bitképszűrőket használnak. Ez minden támogatott összehasonlítási sorrendekkel működik. Az SQL Serveren ez a fejlesztés az Enterprise kiadáshoz van fenntartva.

  • A kötegelt üzemmódban végrehajtott műveletek fejlesztése a vektoralapú hardverképességek kihasználásával. Az adatbázismotor észleli az AVX 2 (Advanced Vector Extensions) és az SSE 4 (Streaming SIMD Extensions 4) hardverbővítmények processzortámogatási szintjét, és ha támogatott, használja őket. Az SQL Serveren ez a fejlesztés az Enterprise kiadáshoz van fenntartva.

130-es adatbázis-kompatibilitási szint teljesítménye

  • Új kötegelt módú végrehajtás támogatása az alábbi műveletek bármelyikét használó lekérdezésekhez:

    • SORT
    • Több különböző függvényt tartalmazó összesítések. Néhány példa: COUNT/COUNT, AVG/SUM, CHECKSUM_AGG, STDEV/STDEVP
    • Ablakösszesítő függvények: COUNT, COUNT_BIG, SUM, AVG, MIN, MAXés CLR
    • Ablak felhasználó által definiált összesítései: CHECKSUM_AGG, STDEV, STDEVP, VAR, VARPés GROUPING
    • Ablakösszesítő elemzési függvények: LAG, LEAD, FIRST_VALUE, LAST_VALUE, PERCENTILE_CONT, PERCENTILE_DISC, CUME_DISTés PERCENT_RANK
  • Az egyszálú lekérdezések, amelyek MAXDOP 1 alatt futnak, vagy soros lekérdezési tervvel rendelkeznek, kötegelt módban hajtódnak végre. Korábban csak többszálú lekérdezések hajthatóak végre kötegelt módon.

  • A memóriaoptimalizált táblázatos lekérdezések párhuzamos tervekkel rendelkezhetnek SQL InterOp módban, mind a sortárban lévő adatok elérésekor, mind az oszlopcentrikus indexben.

Supportability

Ezek a rendszernézetek újak a columnstore-hoz:

Ezek a memóriabeli OLTP-alapú DMV-k tartalmazzák a columnstore-ral kapcsolatos frissítéseket.

Limitations

  • Memóriabeli táblák esetén az oszlopcentrikus indexnek tartalmaznia kell az összes oszlopot; az oszlopcentrikus index nem rendelkezhet szűrt feltétellel.
  • Memóriabeli táblák esetén az oszlopcentrikus indexeken lévő lekérdezések csak interop módban futnak, natív fordítási módban nem. A párhuzamos végrehajtás támogatott.

Ismert problémák

A következőkre vonatkozik: SQL Server 2022 (16.x) és régebbi verziók, Felügyelt Azure SQL Instance2022

  • A LOB-oszlopok (varbinary(max), varchar(max) és nvarchar(max)) által használt adatlapok a tömörített oszlopcentrikus szegmensekben nem helyezhetők át DBCC SHRINKDATABASE és DBCC SHRINKFILE. Ezt a problémát az SQL Server 2025 (17.x) oldja meg.

SQL Server 2014 (12.x)

Az SQL Server 2014 (12.x) elsődleges tárolási formátumként a fürtözött oszlopcentrikus indexet vezette be. Ez lehetővé tette a rendszeres terhelést, valamint a frissítési, törlési és beszúrási műveleteket.

  • A tábla elsődleges adattárként fürtözött oszlopcentrikus indexet használhat. Más indexek nem engedélyezettek a táblán, de az oszlophalmaz index frissíthető, így rendszeresen betölthet új adatokat és módosíthatja az egyes sorokat.
  • A nem klaszterezett oszlopalapú index továbbra is ugyanazokat a funkciókat kínálja, mint az SQL Server 2012-ben (11.x), de most már vannak további operátorok is, amelyek képesek kötegelt módban végrehajtódni. Továbbra sem frissíthető, kivéve az újraépítéssel és a partícióváltással. A nem klaszterezett oszloptáras index csak a lemezalapú táblákon támogatott, nem pedig a memóriában lévő táblákon.
  • A fürtözött és nem fürtözött oszlop-tároló index archiválási tömörítési lehetőséggel rendelkezik, amely tovább tömöríti az adatokat. Az archiválási lehetőség a memóriában és a lemezen egyaránt hasznos az adatméret csökkentéséhez, de lassú lekérdezési teljesítményt nyújt. Jól működik a ritkán elért adatokhoz.
  • A fürtözött oszlopos tároló index és a nem-fürtözött oszlopos tároló index nagyon hasonló módon működnek; ugyanazt az oszlopos tárolási formátumot, ugyanazt a lekérdezésfeldolgozó motort és ugyanazokat a dinamikus felügyeleti nézeteket használják. A különbség az elsődleges és a másodlagos indextípusok között van, a nem klaszterezett oszlop tárolású index pedig csak olvasható.
  • Ezek az operátorok tömbösített módban futnak többszálú lekérdezésekhez: szkennelés, szűrés, projektálás, összekötés, csoportosítás és union all.

SQL Server 2012 (11.x)

Az SQL Server 2012 (11.x) bevezette a nem klaszteres oszlopalapú indexet mint egy másik indextípust a soros táblákon, valamint kötegelt feldolgozást az oszlopalapú adatok lekérdezéseihez.

  • A soros táblának lehet egy nem klaszterezett oszlopalapú indexe.
  • Az oszlopalapú index írásvédett. Az oszlopcentrikus index létrehozása után nem frissítheti a táblát az INSERT, DELETE és UPDATE műveletekkel; ezeket a műveleteket végrehajtani törölnie kell az indexet, frissítenie kell a táblát, és újra kell építenie az oszlopcentrikus indexet. A partícióváltással további adatokat tölthet be a táblába. A partícióváltás előnye, hogy az oszlopcentrikus index elvetése és újraépítése nélkül betöltheti az adatokat.
  • Az oszlopstore index mindig extra tárhelyet igényel, jellemzően 10%-kal többet, mint a sorszintű tárolás, mivel az adatok másolatát tárolja.
  • A kötegelt feldolgozás kétszeres vagy jobb lekérdezési teljesítményt nyújt, de csak párhuzamos lekérdezés-végrehajtásra érhető el.