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
Při vytváření, opětovném sestavení nebo vyřazení indexů je důležité zvážit místo na disku. Nedostatečné místo na disku může snížit výkon nebo dokonce způsobit selhání operace indexu. Tento článek obsahuje obecné informace, které vám pomůžou určit velikost místa na disku vyžadované pro operace jazyka DDL (Index Data Definition Language).
Operace indexu, které nevyžadují žádné další místo na disku
Následující operace indexu nevyžadují žádné další místo na disku:
ALTER INDEX REORGANIZE; je však potřeba místo na logy.DROP INDEXkdyž odstraňujete neklastrovaný index.DROP INDEXkdyž přenášíte clusterovaný index offline bez zadání příkazuMOVE TOa neexistují neclusterované indexy.CREATE TABLE(PRIMARY KEYneboUNIQUEomezení)
Operace indexu, které vyžadují další místo na disku
Všechny ostatní operace DDL indexu vyžadují další dočasné místo na disku, které se použije během operace, a trvalé místo na disku pro uložení nové struktury nebo struktur indexu.
Při vytvoření nové struktury indexu se ve vhodných souborech a skupinách souborů vyžaduje místo na disku pro staré (zdrojové) i nové (cílové) struktury. Stará struktura není uvolněna, dokud není dokončena transakce pro vytvoření indexu.
Následující operace DDL indexu vytvářejí nové struktury indexu a vyžadují další místo na disku:
CREATE INDEXCREATE INDEX WITH DROP_EXISTINGALTER INDEX REBUILD-
ALTER TABLE ADD CONSTRAINT(PRIMARY KEYneboUNIQUE) -
ALTER TABLE DROP CONSTRAINT(PRIMARY KEYneboUNIQUE) v případech, kdy je omezení založeno na clusterovém indexu -
DROP INDEX MOVE TO(Platí jenom pro clusterované indexy.)
Dočasné místo na disku pro řazení
Kromě místa na disku vyžadovaného pro zdrojové a cílové struktury se k řazení vyžaduje dočasné místo na disku, pokud optimalizátor dotazů nenajde plán provádění, který nevyžaduje řazení.
Pokud je řazení povinné, probíhá řazení po jednom novém indexu. Například při opětovném sestavení clusterovaného indexu a přidružených neclusterovaných indexů v rámci jednoho příkazu se indexy seřadí jeden za druhým. Proto další dočasné místo na disku, které je nutné pro řazení, musí být tak velké jako největší index v operaci. To je téměř vždy clusterovaný index.
Pokud je možnost nastavena SORT_IN_TEMPDB na ON, největší index se musí vejít do tempdb. I když tato možnost zvyšuje množství dočasného místa na disku, které se používá k vytvoření indexu, může zkrátit dobu potřebnou k vytvoření indexu, pokud tempdb je na sadě disků, které se liší od uživatelské databáze.
Pokud SORT_IN_TEMPDB je každý index nastavený na OFF (výchozí) včetně dělených indexů, je seřazený do cílového místa na disku a vyžaduje se pouze místo na disku pro nové struktury indexu.
Příklad výpočtu místa na disku najdete v příkladu místa na disku indexu.
Dočasné místo na disku pro operace online indexu
Při online provádění operací indexu je vyžadováno další dočasné místo na disku.
Pokud se clusterovaný index vytvoří, znovu sestaví nebo přeřadí do online režimu, vytvoří se dočasný neclusterovaný index pro mapování starých záložek na nové záložky. Pokud je možnost SORT_IN_TEMPDB nastavena na ON, tento dočasný index se vytvoří v tempdb. Pokud SORT_IN_TEMPDB je nastavená hodnota OFF, použije se stejné schéma skupiny souborů nebo oddílu jako cílový index. Dočasný index mapování obsahuje jeden záznam pro každý řádek v tabulce a jeho obsah je sjednocení starých a nových sloupců záložek, včetně jedinečných identifikátorů a identifikátorů záznamů a zahrnutí pouze jedné kopie libovolného sloupce použitého v obou záložkách. Další informace o online indexovacích operacích naleznete v tématu Provádění operací indexu online.
Poznámka:
Možnost SORT_IN_TEMPDB nelze nastavit pro DROP INDEX příkazy. Dočasný index mapování se vždy vytvoří ve stejné skupině souborů nebo schématu oddílů jako cílový index.
Online indexové operace používají správu verzí řádků k izolaci operace indexu od účinků úprav provedených jinými transakcemi. Tím se zabrání nutnosti požadovat sdílené zámky na řádcích, které byly přečteny. Souběžné operace aktualizace a odstranění uživatelů během online indexových operací vyžadují místo pro záznamy verzí v tempdb. Další informace naleznete v tématu Provádění operací indexu online .
Související úkoly
- Příklad velikosti úložiště indexu na disku
- Místo na disku deníku transakčního logu pro indexovací operace
- Odhad velikosti tabulky
- Odhad velikosti clusterovaného indexu
- Odhad velikosti neclusterovaného indexu
- Odhad velikosti haldy