Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Fürtözött indexeket az SQL Server Management Studio vagy a Transact-SQL használatával hozhat létre táblákon. Néhány kivételtől eltekintve minden táblának fürtözött indexszel kell rendelkeznie. A lekérdezési teljesítmény javítása mellett a fürtözött indexek igény szerint újraépíthetők vagy átrendezhetők a táblák töredezettségének szabályozása érdekében. Klaszterezett index is létrehozható nézeten. (A klaszterezett indexeket a cikkben klaszterezett és nem klaszterezett indexek.)
Tipikus implementációk
A fürtözött indexek a következő módokon implementálhatók:
PRIMARY KEYésUNIQUEkorlátozások**Ha
PRIMARY KEYkényszert hoz létre, a rendszer automatikusan létrehoz egy egyedi fürtözött indexet az oszlopon vagy oszlopokon, ha a táblában még nem létezik fürtözött index, és nem ad meg egyedi nem-fürtözött indexet. Az elsődleges kulcs oszlopa nem engedélyeziNULLértékeket.Ha létrehoz egy
UNIQUEkényszert, akkor a rendszer alapértelmezés szerint létrehoz egy egyedi nem-klaszteres indexet, amely biztosítja aUNIQUEkényszert. Egyedi fürtözött indexet is megadhat, ha még nem létezik fürtözött index a táblában.A kényszer részeként létrehozott indexek automatikusan ugyanazt a nevet kapják, mint a kényszer neve. További információ: Elsődleges és idegenkulcs-megkötések , egyedi kényszerek és ellenőrzési kényszerek.
index korlátozástól független
Az elsődleges kulcs oszloptól eltérő oszlopban fürtözött indexet is létrehozhat, ha nem kizárólagos elsődleges kulcsra vonatkozó korlátozást adott meg.
Limitations
Fürtözött indexstruktúra létrehozásakor lemezterületre van szükség a régi (forrás) és az új (cél)struktúrák számára a megfelelő fájlokban és fájlcsoportokban. A régi struktúra csak a teljes tranzakció véglegesítésével lesz felszabadítva. A rendezéshez további ideiglenes lemezterületre is szükség lehet. További információ: Lemezterület követelményei az Index DDL-műveletek.
Amikor egy fürtözött indexet hozunk létre egy halomra, amely több meglévő nem fürtözött indexet tartalmaz, az összes nem fürtözött indexet újra kell építeni, hogy azok a sorazonosító (RID) helyett a fürtözési kulcs értékét tartalmazzák. Hasonlóképpen, ha egy fürtözött index eldobásra kerül egy olyan tábláról, amely több nem fürtözött indexet tartalmaz, a nem fürtözött indexek mind újraépülnek a
DROPművelet részeként. Ez a folyamat jelentős időt vehet igénybe nagy táblákon.Az indexek nagy méretű táblákon történő létrehozásának előnyös módja, hogy először a klaszterezett indexet hozzuk létre, majd a nem klaszterezett indexeket. Fontolja meg a
ONLINEbeállítás beállításátON, amikor indexeket hoz létre a meglévő táblákon. Ha be vanONállítva, a rendszer nem tartja meg a hosszú távú táblazárolásokat. Ez lehetővé teszi a mögöttes tábla lekérdezéseinek vagy frissítéseinek folytatását. További információ: Indexműveletek online végrehajtása.A fürtözött index indexkulcsa nem tartalmazhat varchar oszlopokat, amelyek a
ROW_OVERFLOW_DATAfoglalási egységben már létező adatokkal rendelkeznek. Ha fürtözött indexet hoz létre egy varchar oszlopban, és a meglévő adatok aIN_ROW_DATAfoglalási egységben találhatók, a soron kívüli adatokat letöltő oszlop későbbi beszúrási vagy frissítési műveletei meghiúsulnak. A sorátfolyási adatokat tartalmazó táblákkal kapcsolatos információk beszerzéséhez használja a sys.dm_db_index_physical_stats (Transact-SQL) dinamikus felügyeleti függvényt.
Permissions
A táblához vagy nézethez ALTER engedély szükséges. A felhasználónak tagja kell lennie a sysadmin rögzített kiszolgálói szerepkörnek, illetve a db_ddladmin és db_owner rögzített adatbázis-szerepköröknek.
Az SQL Server Management Studio használata
Fürtözött index létrehozása az Object Explorerből
Az Object Explorerben bontsa ki azt a táblát, amelyen klaszterezett indexet szeretne létrehozni.
Kattintson a jobb egérgombbal az Indexek mappára, mutasson az Új indexlehetőségre, és válassza a Fürtözött index...lehetőséget.
Az Új index párbeszédpanel Általános lapján adja meg az új index nevét az Index neve mezőben.
Az indexkulcsok alatt válassza a Hozzáadás....
A Oszlopok kijelölésetable_name párbeszédpanelen jelölje be a fürtözött indexhez hozzáadni kívánt táblázatoszlop jelölőnégyzetét.
Kattintson az OK gombra.
Az Új index párbeszédpanelen válassza OKlehetőséget.
Fürtözött index létrehozása a Tábla Tervező használatával
Az Object Explorerben bontsa ki azt az adatbázist, amelyen fürtözött indexet tartalmazó táblát szeretne létrehozni.
Kattintson a jobb gombbal a Táblák mappára, és válassza Új tábla...lehetőséget.
Hozzon létre egy új táblát a szokásos módon. További információ: Táblák létrehozása (adatbázismotor).
Kattintson a jobb gombbal a korábban létrehozott új táblára, és válassza Tervezéslehetőséget.
A Táblatervező menüben válassza Indexek/Kulcsoklehetőséget.
Az Indexek/Kulcsok párbeszédpanelen válassza a Hozzáadáslehetőséget.
Jelölje ki az új indexet a Kijelölt elsődleges/egyedi kulcs vagy Index szövegmezőben.
A rácson válassza a Létrehozás fürtözöttként lehetőséget, majd a tulajdonságtól jobbra található legördülő listából válassza az Igen lehetőséget.
Válassza a Bezárás lehetőséget.
A Fájl menüben válassza a(z) Mentéstable_nameválasztási lehetőséget.
Használd a Transact-SQL-t
Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.
A Standard sávon válassza Új lekérdezéslehetőséget.
Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.
USE AdventureWorks2022; GO -- Create a new table with three columns. CREATE TABLE dbo.TestTable ( TestCol1 INT NOT NULL, TestCol2 NCHAR(10) NULL, TestCol3 NVARCHAR(50) NULL ); GO -- Create a clustered index called IX_TestTable_TestCol1 -- on the dbo.TestTable table using the TestCol1 column. CREATE CLUSTERED INDEX IX_TestTable_TestCol1 ON dbo.TestTable (TestCol1); GO
További információ: INDEX LÉTREHOZÁSA.