Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance
Azure SQLDatabáze SQL v Microsoft Fabric
V SQL Serveru můžete vytvářet neclusterované indexy pomocí aplikace SQL Server Management Studio nebo jazyka Transact-SQL. Neclusterovaný index je struktura indexu oddělená od dat uložených v tabulce, která změní pořadí jednoho nebo více vybraných sloupců. Neclusterované indexy vám často pomůžou rychleji najít data než vyhledávání v podkladové tabulce; Dotazy mohou být někdy zcela zodpovězeny daty v neclusterovém indexu nebo neclusterovaný index může odkazovat databázový stroj na řádky v podkladové tabulce. Obecně platí, že neclusterované indexy se vytvářejí za účelem zlepšení výkonu často používaných dotazů, které nejsou pokryty clusterovaným indexem, nebo k vyhledání řádků v tabulce bez clusterovaného indexu (označovaného jako halda). V tabulce nebo indexovém zobrazení můžete vytvořit více neclusterovaných indexů.
Než začnete
Typické implementace
Neclusterované indexy se implementují následujícími způsoby:
UNIQUEomezení**Při vytváření
UNIQUEomezení se vytvoří jedinečný neclusterovaný index, který ve výchozím nastavení vynucujeUNIQUEomezení. Jedinečný clusterovaný index můžete zadat, pokud clusterovaný index v tabulce ještě neexistuje. Další informace najdete v tématu Jedinečná omezení a kontrolní omezení.Index nezávislý na omezení
Ve výchozím nastavení se vytvoří neclusterovaný index, pokud není zadaný cluster. Maximální počet neclusterovaných indexů, které lze vytvořit pro každou tabulku, je 999. To zahrnuje všechny indexy vytvořené
PRIMARY KEYpomocí omezeníUNIQUE, ale nezahrnuje indexy XML.neklastrový index na indexovaném zobrazení
Po vytvoření jedinečného clusterovaného indexu v zobrazení je možné vytvořit neclusterované indexy. Další informace najdete v tématu Vytvoření indexovaných zobrazení.
Zabezpečení
Permissions
Vyžaduje ALTER oprávnění k tabulce nebo zobrazení. Uživatel musí být členem pevné serverové role sysadmin nebo pevné databázové role db_ddladmin a db_owner.
Použití aplikace SQL Server Management Studio
Vytvoření neclusterovaného indexu pomocí Návrháře tabulky
V Průzkumníku objektů rozbalte databázi obsahující tabulku, na které chcete vytvořit neclusterovaný index.
Rozbalte složku Tabulky.
Pravým tlačítkem myši klikněte na tabulku, na které chcete vytvořit neclusterovaný index, a vyberte Návrh.
Klikněte pravým tlačítkem myši na sloupec, u kterého chcete vytvořit neklastrovaný index, a vyberte Indexy/Klíče.
V dialogovém okně Indexy/klíče vyberte Přidat.
Vyberte nový index v textovém poli Vybraný primární/jedinečný klíč nebo index.
V mřížce vyberte Vytvořit jako seskupenýa z rozevíracího seznamu napravo od vlastnosti zvolte Ne.
Vyberte Zavřít.
V nabídce Soubor zvolte Uložittable_name.
Vytvoření neclusterovaného indexu pomocí Průzkumníka objektů
V Průzkumníku objektů rozbalte databázi obsahující tabulku, na které chcete vytvořit neclusterovaný index.
Rozbalte složku Tabulky.
Rozbalte tabulku, na které chcete vytvořit neclusterovaný index.
Klikněte pravým tlačítkem na složku Indexy, přejděte na Nový indexa vyberte Neskupený index....
V dialogovém okně Nový index zadejte na stránce Obecné název nového indexu do pole Název indexu.
V části Sloupce klíče indexuvyberte Přidat....
V dialogovém okně Vybrat sloupce ztable_name zaškrtněte políčko nebo políčka sloupečků tabulky, které chcete přidat do neklastrovaného indexu.
Vyberte OK.
V dialogovém okně Nový index vyberte OK.
Použijte Transact-SQL
Vytvoření neclusterovaného indexu v tabulce pomocí Transact-SQL
V Průzkumník objektůse připojte k instanci stroje Database Engine, na kterém je nainstalován
AdventureWorks2025.AdventureWorks2025si můžete stáhnout z ukázkových databází .Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit.
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
Související obsah
- VYTVOŘIT INDEX (Transact-SQL)
- Průvodce návrhem a architekturou indexu pro SQL Server a Azure SQL