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
Nemclustered indexeket az SQL Server Management Studióval vagy a Transact-SQL-sel hozhat létre az SQL Serverben. A nemclustered index egy olyan indexstruktúra, amely különbözik az egy vagy több kijelölt oszlopot átrendező táblában tárolt adatoktól. A nem kizárólagos indexek gyakran segíthetnek az adatok gyorsabb megtalálásában, mint az alapul szolgáló táblában való keresés; a lekérdezéseket néha teljes egészében megválaszolhatják a nemclustered indexben lévő adatok, vagy a nemclustered index az adatbázismotort az alapul szolgáló tábla soraihoz irányíthatja. Általában a nem fürtözött indexek azért jönnek létre, hogy javítsák a teljesítményét azoknak a gyakran használt lekérdezéseknek, amelyeket nem fed le a fürtözött index, vagy hogy sorokat keressenek egy táblában, amelynek nincs fürtözött indexe (azaz egy úgynevezett halom). Több nemclustered indexet is létrehozhat egy táblán vagy indexelt nézetben.
Mielőtt hozzákezdene
Tipikus implementációk
A nemclustered indexek a következő módokon implementálhatók:
UNIQUEKorlátok**Kényszer létrehozásakor
UNIQUEa rendszer létrehoz egy egyedi, nemclustered indexet, amely alapértelmezés szerint kényszeríti a kényszertUNIQUE. Egyedi fürtözött indexet is megadhat, ha még nem létezik fürtözött index a táblában. További információ: Egyedi korlátozások és korlátozások ellenőrzése.index korlátozástól független
Alapértelmezés szerint egy nemclustered index jön létre, ha nincs megadva fürtözött. A táblánként létrehozható nemclustered indexek maximális száma 999. Ide tartoznak a kényszerek vagy
PRIMARY KEYa kényszerek általUNIQUElétrehozott indexek, de nem tartalmaznak XML-indexeket.nemklaszteres index egy indexelt nézetben
Miután létrehoztak egy egyedi fürtözött indexet egy nézetben, létrehozhatók nem fürtözött indexek. További információ: Indexelt nézetek létrehozása.
Biztonság
Permissions
Engedélyre van szükség ALTER a táblában vagy a nézetben. 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
Nemclustered index létrehozása a Table Designer használatával
Az Object Explorerben bontsa ki azt az adatbázist, amely azt a táblát tartalmazza, amelyen nem kizárólagos indexet szeretne létrehozni.
Nyissa meg a Táblák mappát.
Kattintson jobb gombbal arra a táblára, amelyre nem klaszteres indexet szeretne létrehozni, és válassza a Tervezéslehetőséget.
Kattintson a jobb gombbal azon az oszlopon, amelyen létre szeretné hozni a nem fürtözött indexet, és válassza a Indexek/Kulcsok.
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éntlehetőséget, majd válassza a Nincs lehetőséget a tulajdonságtól jobbra található legördülő listából.
Válassza a Bezárás lehetőséget.
A Fájl menüben válassza a Mentéstable_nameparancsot.
Nemclustered index létrehozása az Object Explorer használatával
Az Object Explorerben bontsa ki azt az adatbázist, amely azt a táblát tartalmazza, amelyen nem kizárólagos indexet szeretne létrehozni.
Nyissa meg a Táblák mappát.
Bontsa ki azt a táblát, amelyen nem kizárólagos indexet szeretne létrehozni.
Kattintson a jobb gombbal az Indexek mappára, mutasson Új indexelemre, és válassza nem fürtözött index...lehetőséget.
Az Új index párbeszédpanel Általános lapján az Index neve mezőbe írja be az új index nevét.
A(z) indexkulcsokoszlopainál válassza a(z) Hozzáadás...lehetőséget.
A Oszlopok kijelölésetable_name párbeszédpanelen jelölje be a nem klaszteres indexhez hozzáadni kívánt táblaoszlop vagy oszlopok jelölőnégyzeteit.
Kattintson az OK gombra.
Az Új index párbeszédpanelen válassza OKlehetőséget.
Használd a Transact-SQL-t
Nemclustered index létrehozása táblán Transact-SQL
Az Object Explorer-ben csatlakozzon egy adatbázismotor-példányhoz, amelyen telepítve van
AdventureWorks2025. A(z)AdventureWorks2025-t letöltheti a mintaadatbázisokból.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 -- Find an existing index named IX_ProductVendor_VendorID and delete it if found. IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_ProductVendor_VendorID') DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor; GO -- Create a nonclustered index called IX_ProductVendor_VendorID -- on the Purchasing.ProductVendor table using the BusinessEntityID column. CREATE NONCLUSTERED INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor (BusinessEntityID); GO