Factor de umplere

Factorul de umplere este folosit pentru reglarea fină a memoriei și performanței indexului. La crearea sau reconstruirea unui index, factorul de umplere afișează procentajul umplerii spațiului pentru fiecare pagină a nivelului final, ceea ce vă permite să rezervați pentru expansiunea viitoare spațiul rămas pe fiecare pagină ca fiind gratuit. De exemplu, dacă specificați 80 pentru factorul de umplere pe fiecare dintre paginile de nivel final, 20% din spațiul pe care îl ocupă va fi rezervat. Acest spațiu pe disc va fi utilizat pentru a extinde indexul atunci când se adaugă date noi în tabela de bază. Un spațiu gol este rezervat nu la sfârșitul indexului, ci între rândurile indexului.







Factorul de umplere este procentul în intervalul de la 1 la 100; valoarea implicită pe server este 0, ceea ce înseamnă completarea completă a paginilor de nivel final.

Valorile factorului de umplere 0 și 100 sunt echivalente.

Puteți modifica factorul de umplere numai când creați și reconstruiți indexul. Componenta SQL Server Database Engine nu stochează în mod dinamic procentul specificat de spațiu liber pe pagini. Încercarea de a aloca spațiu suplimentar pe disc pentru paginile de date conduce la utilizarea ineficientă a factorului de umplere, deoarece atunci când se adaugă date către o pagină, componenta Engine Engine Database (Bază de date) își împarte spațiul liber în funcție de valoarea specificată a factorului de umplere.

Pauze de pagină

Alegerea factorului de umplere corespunzător reduce eventuala separare a paginilor prin asigurarea unui spațiu suficient pentru creșterea indexului atunci când se adaugă date la masa de bază. Când adăugați o linie nouă unei pagini complet populate, motorul bazei de date muta jumătate din datele de pe aceasta pe noua pagină, eliberând astfel spațiul pentru noul rând. O astfel de reorganizare se numește o rupere de pagină. Operația de divizare a paginii vă permite să alocați spațiu pentru înregistrări noi, dar este intensivă din punct de vedere al resurselor și poate fi efectuată pentru o perioadă lungă de timp. De asemenea, această operație poate cauza fragmentarea, ceea ce duce la o creștere a numărului de operații I / O. Pentru a preveni prea multe întreruperi de pagină, trebuie să redistribuiți datele prin reconstruirea indexului cu un factor de umplere nou sau deja existent. Pentru informații suplimentare, consultați Reorganizarea și reconstruirea indexurilor.







Deși un factor de umplere scăzut (altul decât 0) poate reduce nevoia de divizare a paginii atunci când indexul se extinde, este necesară o memorie mai mare pentru a fi stocată, ceea ce duce la degradarea performanței. Chiar și pentru aplicațiile care se concentrează pe efectuarea mai multor operații de inserare și actualizare, numărul de operații citite este, de obicei, de 5-10 ori mai mare decât numărul de scriere. Prin urmare, atunci când se specifică o valoare a factorului de umplere diferită de valoarea implicită, performanța operațiilor de citire scade invers cu valoarea factorului de umplere. De exemplu, un factor de umplere de 50 poate reduce performanța unei operații citite la jumătate. Performanța operațiilor de citire este redusă deoarece indexul conține mai multe pagini, ceea ce duce la creșterea numărului de operații I / O efectuate pentru extragerea datelor.

Adăugarea de date la sfârșitul tabelului

Un factor de umplere diferit de 0 și 100 poate îmbunătăți performanța în cazul în care datele noi sunt distribuite uniform pe parcursul mesei. Cu toate acestea, dacă datele sunt adăugate la sfârșitul tabelului, spațiul gol din paginile index nu va fi completat. De exemplu, dacă coloana cheie a indexului este coloana IDENTITY, cheia pentru noi rânduri va crește constant și liniile index vor fi adăugate logic la sfârșitul indexului. Dacă rândurile existente sunt actualizate cu date care mărește dimensiunea liniilor, ar trebui să utilizați un factor de umplere mai mic de 100. Alte octeți pe fiecare pagină vă vor ajuta să minimizați divizarea paginii prin mărirea lungimii liniilor.







Articole similare

Trimiteți-le prietenilor: