Megosztás a következőn keresztül:


Nem klaszterezett indexek létrehozása

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-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:

  • UNIQUE Korlátok**

    Kényszer létrehozásakor UNIQUE a rendszer létrehoz egy egyedi, nemclustered indexet, amely alapértelmezés szerint kényszeríti a kényszert UNIQUE . 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 KEY a kényszerek által UNIQUE lé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

  1. 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.

  2. Nyissa meg a Táblák mappát.

  3. Kattintson jobb gombbal arra a táblára, amelyre nem klaszteres indexet szeretne létrehozni, és válassza a Tervezéslehetőséget.

  4. 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.

  5. Az Indexek/Kulcsok párbeszédpanelen válassza a Hozzáadáslehetőséget.

  6. Jelölje ki az új indexet a Kijelölt elsődleges/egyedi kulcs vagy Index szövegmezőben.

  7. 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.

  8. Válassza a Bezárás lehetőséget.

  9. A Fájl menüben válassza a Mentéstable_nameparancsot.

Nemclustered index létrehozása az Object Explorer használatával

  1. 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.

  2. Nyissa meg a Táblák mappát.

  3. Bontsa ki azt a táblát, amelyen nem kizárólagos indexet szeretne létrehozni.

  4. Kattintson a jobb gombbal az Indexek mappára, mutasson Új indexelemre, és válassza nem fürtözött index...lehetőséget.

  5. Az Új index párbeszédpanel Általános lapján az Index neve mezőbe írja be az új index nevét.

  6. A(z) indexkulcsokoszlopainál válassza a(z) Hozzáadás...lehetőséget.

  7. 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.

  8. Kattintson az OK gombra.

  9. 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

  1. 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.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. 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