Přesunutí existujícího indexu do jiné skupiny souborů
platí pro:SQL Server
azure SQL Managed Instance
Toto téma popisuje, jak přesunout existující index z aktuální skupiny souborů do jiné skupiny souborů v SQL Serveru pomocí aplikace SQL Server Management Studio nebo Jazyka Transact-SQL.
Aspekty návrhu, včetně důvodů, proč byste mohli chtít umístit neclusterovaný index do jiné skupiny souborů, najdete v tématu Umístění indexu u skupin souborů nebo schémat oddílů.
Než začnete
Omezení a restrikce
Pokud má tabulka clusterovaný index a tento index je přesunut do nové skupiny souborů, celá tabulka se přesune do této skupiny.
Indexy vytvořené pomocí omezení UNIQUE nebo PRIMARY KEY nelze přesunout pomocí sady Management Studio. K přesunutí těchto indexů použijte příkaz CREATE INDEX s možností (DROP_EXISTING=ON) v jazyce Transact-SQL.
Bezpečnost
Dovolení
Vyžaduje oprávnění ALTER v tabulce nebo zobrazení. Uživatel musí být členem pevné role serveru správce systému nebo pevné role databáze db_ddladmin a db_owner.
Použití aplikace SQL Server Management Studio
Přesunutí existujícího indexu do jiné skupiny souborů pomocí Návrháře tabulek
V Průzkumníku objektů kliknutím na znaménko plus rozbalte databázi obsahující tabulku obsahující index, který chcete přesunout.
Kliknutím na znaménko plus rozbalte složku Tabulky.
Klikněte pravým tlačítkem myši na tabulku obsahující index, který chcete přesunout, a vyberte Návrh.
V nabídce Návrhář tabulky klikněte na Indexy a klíče.
Vyberte index, který chcete přesunout.
V hlavní mřížce rozbalte Data Space Specification.
Vyberte Název skupiny souborů nebo schématu oddílů a vyberte ze seznamu schéma skupiny souborů nebo oddílu do umístění, kam chcete index přesunout.
Klikněte na Zavřít.
V nabídce Soubor vyberte Uložittable_name.
Přesunutí existujícího indexu do jiné skupiny souborů v Průzkumníku objektů
V Průzkumníku objektů kliknutím na znaménko plus rozbalte databázi obsahující tabulku obsahující index, který chcete přesunout.
Kliknutím na znaménko plus rozbalte složku Tabulky.
Kliknutím na znaménko plus rozbalte tabulku obsahující index, který chcete přesunout.
Kliknutím na znaménko plus rozbalte složku Indexy.
Klikněte pravým tlačítkem myši na index, který chcete přesunout, a vyberte Vlastnosti.
V části Vyberte stránku, vyberte úložiště .
Vyberte skupinu souborů, do které chcete index přesunout.
Pokud je tabulka nebo index rozdělený na oddíly, vyberte schéma oddílů, ve kterém chcete index přesunout. Další informace o dělených indexech najdete v tématu Dělené tabulky a indexy.
Pokud přesouváte clusterovaný index, můžete použít online zpracování. Online zpracování umožňuje souběžnému přístupu uživatelů k podkladovým datům a neclusterovaným indexům během operace indexu. Další informace naleznete v tématu Provádění operací indexu online.
Na počítačích s více procesory používajících SQL Server můžete nakonfigurovat počet procesorů, které se používají ke spuštění příkazu indexu, zadáním maximálního stupně paralelismu. Funkce paralelních operací indexu není k dispozici v každé edici SQL Serveru. Seznam funkcí podporovaných edicemi SQL Serveru najdete v tématu Funkce podporované edicemi SQL Serveru 2016. Další informace o paralelních operacích indexu najdete v tématu Konfigurace operací paralelního indexu.
Klepněte na tlačítko OK.
Následující informace jsou k dispozici na stránce Storage ve vlastnostech indexu -dialogové okno: index_name.
skupina souborů
Uloží index do zadané skupiny souborů. V seznamu se zobrazují jenom standardní (řádkové) skupiny souborů. Výchozí výběr seznamu je primární skupina souborů databáze.
Filestream souborová skupina
Určuje skupinu souborů pro data FILESTREAM. Tento seznam zobrazuje pouze skupiny souborů FILESTREAM. Výchozí výběr seznamu je primární skupina souborů FILESTREAM.
Schéma oddílu
Uloží index do schématu oddílů. Kliknutím na Schéma oddílů povolíte následující mřížku. Výchozí výběr seznamu je schéma oddílů, které se používá k ukládání dat tabulky. Když v seznamu vyberete jiné schéma oddílů, aktualizují se informace v mřížce.
Možnost schématu oddílů je nedostupná, pokud v databázi žádná schémata oddílů nejsou.
Filestreamový schémat oddílů
Určuje schéma diskových oddílů pro data FILESTREAM. Schéma oddílů musí být symetrické se schématem zadaným v možností schéma oddílů .
Pokud tabulka není rozdělená na oddíly, pole je prázdné.
Parametrizace Schématu Oddílů
Zobrazí název sloupce, který se účastní partičního schématu.
sloupec tabulky
Vyberte tabulku nebo zobrazení, které chcete přiřadit schématu oddílů.
datový typ sloupce
Zobrazí informace o datovém typu sloupce.
Poznámka
Pokud je sloupec v tabulce počítaný, Datový Typ Sloupce zobrazí "počítaný sloupec".
Povolit online zpracování příkazů DML při přesouvání indexu
Umožňuje uživatelům získat přístup k podkladovým tabulkovým nebo clusterovaným datům indexu a všem přidruženým neclusterovaným indexům během operace indexu.
Poznámka
Tato možnost nelze použít pro indexy XML, nebo pokud je index zakázaný shlukovaný index.
Nastavit maximální stupeň paralelismu
Omezuje počet procesorů, které se mají použít při paralelním provádění plánu. Výchozí hodnota 0 používá skutečný počet dostupných procesorů. Nastavení hodnoty na 1 potlačí generování paralelního plánu; nastavení hodnoty na číslo větší než 1 omezuje maximální počet procesorů používaných jedním spuštěním dotazu. Tato možnost je dostupná pouze v případě, že je dialogové okno v Přestavění nebo Vytvoření stavu.
Poznámka
Pokud je zadána hodnota větší než počet dostupných procesorů, použije se skutečný počet dostupných procesorů.
Použití Transact-SQL
Přesunutí existujícího indexu do jiné skupiny souborů
V Průzkumník objektůse připojte k instanci databázového stroje.
Na panelu Standard klikněte na Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a klikněte na Spustit.
USE AdventureWorks2022; GO -- Creates the TransactionsFG1 filegroup on the AdventureWorks2022 database ALTER DATABASE AdventureWorks2022 ADD FILEGROUP TransactionsFG1; GO /* Adds the TransactionsFG1dat3 file to the TransactionsFG1 filegroup. Please note that you will have to change the filename parameter in this statement to execute it without errors. */ ALTER DATABASE AdventureWorks2022 ADD FILE ( NAME = TransactionsFG1dat3, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13\MSSQL\DATA\TransactionsFG1dat3.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ) TO FILEGROUP TransactionsFG1; GO /*Creates the IX_Employee_OrganizationLevel_OrganizationNode index on the TransactionsPS1 filegroup and drops the original IX_Employee_OrganizationLevel_OrganizationNode index. */ CREATE NONCLUSTERED INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee (OrganizationLevel, OrganizationNode) WITH (DROP_EXISTING = ON) ON TransactionsFG1; GO
Další kroky
Další informace naleznete v tématu CREATE INDEX (Transact-SQL).