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
Felügyelt Azure SQL-példány
Újraépít egy vagy több indexet a megadott adatbázisban lévő táblákhoz.
Fontos
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. Ehelyett használja ALTER INDEX.
A: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.
Transact-SQL szintaxis konvenciói
Szintaxis
DBCC DBREINDEX
(
table_name
[ , index_name [ , fillfactor ] ]
)
[ WITH NO_INFOMSGS ]
Érvek
table_name
Az újraépítéshez megadott indexeket vagy indexeket tartalmazó tábla neve. A táblaneveknek követnie kell azonosítókszabályait.
index_name
Az újraépítendő index neve. Az indexneveknek meg kell felelniük az azonosítókra vonatkozó szabályoknak. Ha index_name van megadva, table_name kell megadni. Ha index_name nincs megadva, vagy ' ', a tábla összes indexe újraépül.
fillfactor
Az index létrehozásakor vagy újraépítésekor az egyes indexoldalakon az adatok tárolására szolgáló terület százalékos aránya. fillfactor az index létrehozásakor lecseréli a kitöltési tényezőt, és az új alapértelmezett értékké válik az index és bármely más nemclustered index esetében, mivel a fürtözött indexek újraépülnek.
Ha fillfactor értéke 0, DBCC DBREINDEX az indexhez legutóbb megadott kitöltőtényező-értéket használja. Ezt az értéket a rendszer sys.indexes katalógusnézetben tárolja.
Ha fillfactor van megadva, table_name és index_name kell megadni. Ha nincs megadva, a rendszer az alapértelmezett 100-es kitöltési tényezőt használja. További információ: Kitöltési tényező megadása index.
A NO_INFOMSGS
Letiltja a 0 és 10 közötti súlyossági szintű információs üzeneteket.
Megjegyzések
DBCC DBREINDEX egy tábla indexét vagy egy táblához definiált összes indexet újraépíti. Ha lehetővé teszi egy index dinamikus újraépítését, az ELSŐDLEGES KULCS vagy AZ EGYEDI kényszereket kényszerítő indexek újraépíthetők anélkül, hogy le kellene dobniuk és újra létre kellene hozniuk ezeket a kényszereket. Ez azt jelenti, hogy az indexek a tábla szerkezetének vagy korlátainak ismerete nélkül újraépíthetők. Ez akkor fordulhat elő, ha az adatok tömeges másolása a táblába történik.
DBCC DBREINDEX egyetlen utasításban újraépítheti egy tábla összes indexét. Ez egyszerűbb, mint több DROP INDEX és CREATE INDEX utasítás kódolása. Mivel a műveletet egy utasítás végzi, a DBCC DBREINDEX automatikusan atomi, míg az egyes DROP INDEX és CREATE INDEX utasításokat bele kell foglalni egy olyan tranzakcióba, amely atomi. Emellett DBCC DBREINDEX az egyes DROP INDEX és CREATE INDEX utasításoknál is több optimalizálást kínál.
A DBCC INDEXDEFRAG beállítással ALTER INDEXvagy REORGANIZE ellentétben a DBCC DBREINDEX offline művelet. Ha egy nemclustered indexet újjáépít, a művelet során a rendszer megosztott zárolást tart a kérdéses táblában. Ez megakadályozza a tábla módosítását. Ha a fürtözött indexet újraépítik, kizárólagos táblazárolás lesz megtartva. Ez megakadályozza a táblák elérését, ezért hatékonyan offline állapotba teszi a táblát. Az indexek online újraépítéséhez vagy az index-újraépítési művelet során a párhuzamosság mértékének szabályozásához használja a ALTER INDEX REBUILD utasítást a ONLINE beállítással.
Az indexek újraépítésére vagy átrendezésére szolgáló módszer kiválasztásáról további információt az indexek újraszervezése és újraszervezése címűtalál.
Korlátozások
DBCC DBREINDEX nem támogatott az alábbi objektumokon való használatra:
- Rendszertáblák
- Térbeli indexek
- memóriaoptimalizált oszlopcentrikus indexek
Eredményhalmazok
Ha nincs megadva NO_INFOMSGS (a tábla nevét meg kell adni), DBCC DBREINDEX mindig a következőt adja vissza:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Engedélyek
A hívónak rendelkeznie kell a táblával, vagy tagja kell lennie a sysadmin rögzített kiszolgálói szerepkörnek, a db_owner rögzített adatbázis-szerepkörnek vagy a db_ddladmin rögzített adatbázis-szerepkörnek.
Példák
Egy. Index újraépítése
Az alábbi példa újraépíti a Employee_EmployeeID fürtözött indexet a 80 adatbázis Employee táblájának AdventureWorks2025 kitöltési tényezőjével.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', PK_Employee_BusinessEntityID, 80);
GO
B. Az összes index újraépítése
Az alábbi példa a EmployeeAdventureWorks2025 táblájának összes indexét újraépíti 70kitöltési tényező értékének használatával.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', ' ', 70);
GO