Een computer database die frequent ziet toevoegt , verwijdert en updates zullen , na verloop van tijd , lijden indexfragmentatie , vertragen de database beneden . SQL Server-database -software van Microsoft heeft twee Structured Query Language ( SQL ) -opdrachten dat adres deze kwestie : DBCC INDEXDEFRAG en DBCC DBREINDEX . Hoewel ze beiden het probleem op te lossen , de verschillen tussen de twee dicteren hoe je ze gebruikt . Actie De DBREINDEX commando herbouwt tafel indexen van de grond af , terwijl INDEXDEFRAG houdt de indexen , maar reorganiseert hun inhoud . U kunt het equivalent van DBREINDEX voeren door de uitgifte van een DROP INDEX en CREATE INDEX voor elke index die u wilt bouwen ; DBREINDEX is sneller en minder gevoelig voor typefouten . INDEXDEFRAG compacts de index volgens zijn fillfactor , het verwijdert alle lege pagina's gemaakt tijdens het defragmenteren operatie Speed De relatieve snelheid van de twee opdrachten is afhankelijk van de graad . van fragmentatie in de indexen van een tabel . INDEXDEFRAG werkt sneller als de indexen hebben een relatief lage hoeveelheid fragmentatie : het minder tijd kost om een paar pagina's in een index scannen en herschikken dan om het te herbouwen met DBREINDEX . Echter , als je hebt laten een aanzienlijke hoeveelheid van pas omdat je geherindexeerd de database , INDEXDEFRAG zal langer duren dan DBREINDEX . Exclusieve versus Shared Access DBCC DBREINDEX vereist exclusieve toegang tot de tafel , effectief vergrendeling alle gebruikers en processen uit, terwijl het werkt . De tabel indexen zijn onvolledig totdat de opdracht is voltooid , zodat de gebruiker verzoeken om gegevens zouden mislukken als ze probeerden toegang te krijgen tot de tabel . Aan de andere kant , INDEXDEFRAG herverdeelt gewoon de bestaande index , zodat gebruikers toegang biedt tot de tafel . Opties Beide opdrachten hebben een NOINFOMSGS optie , het uitschakelen van alle berichten die anders zou komen tijdens de uitvoering . DBREINDEX kunt u een of alle van de indexen van een tabel te herbouwen in een enkel commando . INDEXDEFRAG werkt slechts een index tegelijk , zodat tabellen met meerdere indexen vereisen meerdere opdrachten . De DBREINDEX kunt u een index fillfactor veranderen , zodat je min of meer vrije ruimte in te bouwen in de index . Indexen met meer vrije ruimte nemen meer schijfruimte , maar loopt iets sneller als je programma records toevoegen regelmatig om de tafel .
|