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
Ez a cikk azt ismerteti, hogyan engedélyezheti a letiltott indexeket az SQL Server Management Studio vagy a Transact-SQL használatával az SQL Serverben. Az index letiltása után letiltott állapotban marad, amíg újra nem épül vagy el nem vetik.
Limitations
Az index újraépítése után manuálisan kell engedélyezni az index letiltása miatt letiltott korlátozásokat.
PRIMARY KEY és UNIQUE a korlátozások a társított index újraépítésével engedélyezve vannak. Ezt az indexet újra kell felépíteni (engedélyezve) ahhoz, hogy engedélyezhesse FOREIGN KEY a PRIMARY KEYUNIQUE kényszerre hivatkozó korlátozásokat.
FOREIGN KEY korlátozásokat az ALTER TABLE CHECK CONSTRAINT utasítással engedélyezheti.
A letiltott klaszteres index újraépítése nem hajtható végre, ha a(z) ONLINE opció ON értékre van beállítva.
Amikor a klaszterezett index tiltott vagy engedélyezett, és a nem-klaszterezett index tiltott, a klaszterezett index műveletének a következő eredményei vannak a tiltott nem-klaszterezett indexre.
| Fürtözött index akció | Letiltott nem csoportosított index állapota |
|---|---|
ALTER INDEX REBUILD |
Továbbra is tiltott |
ALTER INDEX ALL REBUILD |
Újraépítés és engedélyezés |
DROP INDEX |
Újraépítés és engedélyezés |
CREATE INDEX WITH DROP_EXISTING |
Továbbra is tiltott |
Az új fürtözött index létrehozása ugyanúgy működik, mint a ALTER INDEX ALL REBUILD.
A fürtözött indexhez kapcsolódó nem-fürtözött indexeken engedélyezett műveletek mindkét indextípus állapotától függenek, tehát attól, hogy le vannak-e tiltva vagy engedélyezve. Az alábbi táblázat összefoglalja a nemclustered indexeken engedélyezett műveleteket.
| Nem indexelt művelet | Amikor mind a fürtözött, mind a nem fürtözött indexek letiltva vannak | Ha a fürtözött index engedélyezve van, és a nem fürtözött index bármelyik állapotban van |
|---|---|---|
ALTER INDEX REBUILD |
A művelet meghiúsul | A művelet sikeres |
DROP INDEX |
A művelet sikeres | A művelet sikeres |
CREATE INDEX WITH DROP_EXISTING |
A művelet meghiúsul | A művelet sikeres |
A letiltott tömörített, nem-összefüggő indexek data_compression újraépítésekor az alapértelmezett beállítás none lesz, amely azt jelenti, hogy az indexek tömörítetlenek. Ennek az az oka, hogy a tömörítési beállítások metaadatai elvesznek, ha a nemclustered indexek le vannak tiltva. A probléma megoldásához explicit adattömörítést kell megadnia az újraépítési utasításban.
Permissions
A táblához vagy nézethez ALTER engedély szükséges. Ha a DBCC DBREINDEX-t használja, vagy a táblának a tulajdonosának kell lennie, vagy a sysadmin rögzített kiszolgálói szerepkör, illetve a db_ddladmin vagy db_owner rögzített adatbázis-szerepkör tagjának kell lennie.
Az SQL Server Management Studio használata
Letiltott index engedélyezése
Az Object Explorerben válassza a pluszjelet az indexet engedélyező táblát tartalmazó adatbázis kibontásához.
A pluszjel kiválasztásával bontsa ki a Táblák mappát.
Jelölje ki a pluszjelet annak a táblának a kibontásához, amelyen engedélyezni szeretné az indexet.
A pluszjel kiválasztásával bontsa ki a Indexek mappát.
Kattintson a jobb gombbal az engedélyezni kívánt indexre, és válassza Újraépítéslehetőséget.
Az Indexek újraépítése párbeszédpanelen ellenőrizze, hogy a megfelelő index szerepel-e a indexekben a rács újraépítéséhez, és válassza az OKlehetőséget.
Tábla összes indexének engedélyezése
Az Object Explorerben válassza a pluszjelet annak az adatbázisnak a kibontásához, amely azt a táblát tartalmazza, amelyen engedélyezni szeretné az indexeket.
A pluszjel kiválasztásával bontsa ki a Táblák mappát.
Válassza ki a pluszjelet annak a táblának a kibontásához, amelyen engedélyezni szeretné az indexeket.
Kattintson a jobb gombbal az Indexek mappára, és válassza az Az összes újraépítése parancsot.
Az Indexek újraépítése párbeszédpanelen ellenőrizze, hogy a megfelelő indexek szerepelnek-e az Indexekben a rács újraépítéséhez , és válassza az OK gombot. Ha el szeretne távolítani egy indexet a indexekből rács újraépítéséhez, jelölje ki az indexet, majd nyomja le a Delete billentyűt.
Az alábbi információk az Indexek újraépítése párbeszédpanelen érhetők el:
Használd a Transact-SQL-t
A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.
Letiltott index engedélyezése az ALTER INDEX használatával
Hajtsa végre a következő Transact-SQL szkriptet. Ez a példa engedélyezi az IX_Employee_OrganizationLevel_OrganizationNode indexet a HumanResources.Employee táblában.
USE AdventureWorks2022;
GO
ALTER INDEX IX_Employee_OrganizationLevel_OrganizationNode
ON HumanResources.Employee REBUILD;
GO
Letiltott index engedélyezése a CREATE INDEX használatával
Hajtsa végre a következő Transact-SQL szkriptet. Ez a példa újra létrehozza az IX_Employee_OrganizationLevel_OrganizationNode indexet a táblában az HumanResources.Employee oszlopok és OrganizationLevel az OrganizationNode oszlopok használatával, majd törli a meglévő IX_Employee_OrganizationLevel_OrganizationNode indexet.
USE AdventureWorks2022;
GO
CREATE INDEX IX_Employee_OrganizationLevel_OrganizationNode
ON HumanResources.Employee(OrganizationLevel, OrganizationNode) WITH (DROP_EXISTING = ON);
GO
Letiltott index engedélyezése a DBCC DBREINDEX használatával
Note
Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását.
Hajtsa végre a következő Transact-SQL szkriptet. Ez a példa engedélyezi az IX_Employee_OrganizationLevel_OrganizationNode indexet a HumanResources.Employee táblában.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ("HumanResources.Employee", IX_Employee_OrganizationLevel_OrganizationNode);
GO
Tábla összes indexének engedélyezése ALTER INDEX használatával
Hajtsa végre a következő Transact-SQL szkriptet. Ez a példa engedélyezi a HumanResources.Employee táblán az összes indexet.
USE AdventureWorks2022;
GO
ALTER INDEX ALL
ON HumanResources.Employee REBUILD;
GO
Tábla összes indexének engedélyezése a DBCC DBREINDEX használatával
Note
Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását.
Hajtsa végre a következő Transact-SQL szkriptet. Ez a példa engedélyezi a HumanResources.Employee táblán az összes indexet.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ("HumanResources.Employee", " ");
GO