En database som ser hyppig legger til, sletter og oppdateringer vil , over tid , lider indeksen fragmentering , bremse databasen nede . Microsofts SQL Server-database programvare har to Structured Query Language ( SQL) kommandoer som adresserer dette problemet : DBCC INDEXDEFRAG og DBCC DBREINDEX . Selv om de begge løse problemet , forskjellene mellom de to diktere hvordan du bruker dem . Handling
DBREINDEX kommandoen gjenoppbygger tabellen indekser fra bunnen av, mens INDEXDEFRAG holder indeksene , men reorganiserer innholdet. Du kan utføre tilsvarende DBREINDEX ved å utstede en DROP INDEX og CREATE INDEX for hver indeksen du vil gjenoppbygge ; DBREINDEX er raskere og mindre utsatt for skrivefeil . INDEXDEFRAG komprimerer indeksen i henhold til fillfactor sitt, det fjerner eventuelle tomme sider som opprettes under defragmentering operasjonen
Speed
Den relative hastigheten på to kommandoer avhenger av graden . av fragmentering i en tabell indekser. INDEXDEFRAG fungerer raskere hvis indeksene har en relativt lav mengde av fragmentering : det tar kortere tid å skanne og omorganisere noen få sider i en indeks enn å bygge den opp med DBREINDEX . Men hvis du har latt en betydelig mengde pass siden du indekseres databasen, vil INDEXDEFRAG ta lengre tid enn DBREINDEX .
Eksklusiv versus delt tilgang
DBCC DBREINDEX krever eksklusiv tilgang til bordet , effektivt låse alle brukere og prosesser ut mens det fungerer. Tabellen indekser er ufullstendig før kommandoen er ferdig , slik at brukeren ber om data ville mislykkes hvis de prøvde å gå inn på bordet . På den annen side , INDEXDEFRAG bare reshuffles den eksisterende indeksen , slik at det tillater brukerne å få tilgang til bordet .
Options
Begge kommandoene har en NOINFOMSGS alternativ, slå av alle meldinger som ellers ville komme opp under kjøring . DBREINDEX tillater deg å gjenoppbygge en eller alle av en tabell indekser i en enkelt kommando . INDEXDEFRAG fungerer på bare én indeks om gangen , slik at tabeller med flere indekser krever flere kommandoer. Den DBREINDEX lar deg endre en indeks er fillfactor , slik at du kan bygge mer eller mindre ledig plass i indeksen . Indekser med mer ledig plass tar mer diskplass , men kjøre litt fortere hvis programmene ofte legge til poster i tabellen .