En computer database, der ser hyppige tilføjer , sletter og opdaterer med tiden , lider index fragmentering , langsommere databasen ned. Microsofts SQL Server- database software har to Structured Query Language (SQL) kommandoer at løse denne situation : DBCC INDEXDEFRAG og DBCC DBREINDEX . Selvom de begge at løse problemet, forskelle mellem de to diktere, hvordan du bruger dem. Aktion
DBREINDEX Kommandoen genopbygger tabelindekserne fra bunden, mens INDEXDEFRAG holder indekser , men reorganiserer deres indhold. Du kan udføre svarer til DBREINDEX ved at udstede en DROP INDEX og CREATE INDEX for hver indeks, du vil genopbygge , DBREINDEX er hurtigere og mindre tilbøjelige til stavefejl . INDEXDEFRAG komprimerer indekset i henhold til dens fillfactor , det fjerner eventuelle tomme sider oprettet under defragmentering operation
Speed
relative hastighed af de to kommandoer afhænger af graden . fragmentering i en tabels indekser. INDEXDEFRAG virker hurtigere , hvis indeksene har en forholdsvis lav mængde af fragmentering: det tager mindre tid til at scanne og omarrangere et par sider i et indeks end at genopbygge det med DBREINDEX . Men hvis du har ladet en betydelig mængde af pass siden du indekseres databasen vil INDEXDEFRAG tage længere tid end DBREINDEX .
Eksklusiv versus Delt Access
DBCC DBREINDEX kræver eksklusiv adgang til bordet, effektivt låse alle brugere og processer , mens det fungerer. Tabelindekserne er ufuldstændige , indtil kommandoen er færdig, så brugerdata anmodninger om data ikke ville , hvis de forsøgte at få adgang til tabellen. På den anden side , skal du blot INDEXDEFRAG foretager ændringer af den eksisterende indeks , så det giver brugerne mulighed for at få adgang til tabellen.
Options
Begge kommandoer har en NOINFOMSGS mulighed , slukke enhver beskeder , der ellers ville komme frem under udførelse. DBREINDEX tillader dig at genopbygge en eller alle af en tabel indeks i et enkelt kommando. INDEXDEFRAG virker på én indeks ad gangen, så tabeller med flere indekser kræver flere kommandoer. Den DBREINDEX kan du ændre et indeks s fillfactor , så du bygger mere eller mindre ledig plads i indekset . Indexes med mere ledig plads tage mere diskplads, men køre lidt hurtigere , hvis dine programmer ofte føjer poster til tabellen.