Prezentare generală a fragmentării indexului
Ce este fragmentarea indexului și de ce ar trebui să mă concentrez pe ea: Fragmentarea apare atunci când ordonarea logică din index (bazată pe valoarea cheie din index) nu corespunde ordinii fizice din paginile de index din paginile pe care le conține indexul. Ori de câte ori se efectuează o operațiune de inserare, actualizare sau ștergere asupra datelor subiacente, motorul bazei de date modifică automat indexul. De exemplu, adăugarea de rânduri într-un tabel poate determina ca rândurile împărțite să stocheze pagini existente în index pentru a face loc inserării unor chei noi. În timp, aceste modificări pot face ca informațiile din index să fie împrăștiate în baza de date (conținând fragmente). Fragmentarea apare atunci când ordinea logică (bazată pe cheie-valoare) din paginile conținute de index nu corespunde ordinii fizice din fișierul de date. Un număr mare de indici fragmentați poate încetini performanța interogărilor deoarece este necesară o I/O suplimentară pentru a găsi datele către care indicele indică. Mai multă I/O poate face ca aplicația să răspundă lent, mai ales când sunt implicate operațiuni de scanare.
Verifică fragmentarea indexului bazei de date
Comanda:
Există două moduri de a defragmenta: reorganizarea și recrearea indexurilor, reconstruirea indexurilor se referă la ștergerea indicilor vechi și reconstruirea celor noi într-o tranzacție, ceea ce revendică spațiul pe hard disk al indexului original și alocă spațiu nou de stocare pentru a crea o structură de index. Reorganizarea indexurilor se referă la nealocarea spațiului nou de stocare, la reorganizarea nodurilor frunză ale structurii indexului pe baza spațiului original, astfel încât ordinea logică și ordinea fizică a paginilor de date să fie consistente și eliberarea spațiului suplimentar în index.
Folosește funcția sys.dm_db_index_physical_stats pentru a detecta gradul de fragmentare, câmpul avg_fragmentation_in_percent procentul fragmentelor logice returnate, în general, Microsoft recomandă un prag de 30%:
avg_fragmentation_in_percent >5% și <=30%: ALTER INDEX REORGANIZE; avg_fragmentation_in_percent >30%: RECONSTRUCȚIE A INDICELUI ALTER;
avg_fragmentation_in_percent: Procentajul de fragmentare al indicilor, dacă fragmentarea este mai mică de 10%~20%, fragmentarea este puțin probabil să fie o problemă,Dacă fragmentarea indicilor este la 20%~40%, fragmentarea poate fi o problemă, dar rezoluția indicilor poate fi eliminată prin reorganizarea indicilor, iar fragmentarea la scară largă (când fragmentarea este mai mare de 40%) poate necesita reconstrucția indicilor.
Interogați informațiile de fragmentare pentru toate indexurile unui anumit tabel
Reindexarea tabelelor
Reconstruiește indexul tuturor tabelelor din întreaga bază de date
Resurse:Autentificarea cu hyperlink este vizibilă.
|