Pagini și Extents

Unitatea de bază de stocare a datelor în SQL Server este o pagină. spațiu pe disc a permis pentru plasarea fișierului de date (MDF- sau FND-fișier) în baza de date este împărțită logic în pagini cu un transfer continuu de la 0 la n. operațiunile de intrare și de ieșire disc sunt realizate la nivelul paginii. În mod specific, SQL Server citește sau scrie pagini întregi de date.

Întinderea - este o colecție de opt pagini învecinate fizic; acestea sunt utilizate pentru a gestiona eficient paginile. Toate paginile sunt stocate în extensii.

În SQL Server, dimensiunea paginii este de 8 KB. Acest lucru înseamnă că, într-un megabyte de baze de date SQL Server conține 128 de pagini. Fiecare pagină începe cu un antet de 96 octeți, care este utilizat pentru a stoca datele de sistem pe pagina. Aceste date includ un număr de pagini, tipul de pagină, cantitatea de spațiu liber pe pagina de alocare obiect ID-ul unității al paginii.

Tabelul de mai jos prezintă tipurile de pagini utilizate în baza de date cu fișierele de date SQL Server.

Fișierele log nu conțin pagini, ele conțin o secvență de înregistrări jurnal.

rânduri de date înregistrate pe pagina secvențial, imediat după titlu. rânduri de masă de compensare începe la sfârșitul paginii; Fiecare tabel de offset rânduri conține câte o intrare pentru fiecare linie de pe pagina. Fiecare intrare se înregistrează cât de departe de la începutul paginii este primul octet din șir. Intrările în rândurile din tabel sunt decalate în ordinea inversă a secvenței de linii pe pagină.

Suport pentru siruri de caractere mari

Linia nu se poate împărți pagina în părți, dar o parte a liniei poate fi mutat într-o altă pagină care linia a fost într-adevăr foarte mare. Cantitatea maximă de date și codul de service conținute într-o singură linie de pe pagina este 8060 bytes (8K). Cu toate acestea, acest lucru nu include datele stocate în tipul de pagină „text / imagine.“ Această restricție nu este la fel de stricte pentru tabelele care conțin coloane referitoare la tipurile de date varchar. nvarchar. VARBINARY sau sql_variant. Când dimensiunea totală a tuturor rândurilor fixe și coloane într-un tabel de variabile depășește limita de 8060 octeți, SQL Server se mișcă dinamic una sau mai multe coloană lungime variabilă la unitatea de distribuție pagina ROW_OVERFLOW_DATA, pornind de la coloana cu cea mai mare lățime. Această acțiune se efectuează întotdeauna, ca urmare a unor inserții sau actualizează dimensiunea totală a șirului este dincolo de limita de 8060 octeți. Atunci când este stocată o coloană se deplasează pe unitatea de distribuție pagina ROW_OVERFLOW_DATA, indicatorul 24-byte de pe pagina originală în unitatea de distribuție IN_ROW_DATA. Dacă operația ulterioară fiind efectuate descrește mărimea rând, SQL Server se mișcă dinamic coloanele de date înapoi la pagina inițială. Pentru mai multe informații, consultați. În secțiunea depășește dimensiunea liniei de date a paginii, mai mult de 8 KB.

Extents sunt unitatea de bază de organizare a spațiului. O măsură este format din opt pagini continue sau 64 KB. Acest lucru înseamnă că, într-un megabyte de baze de date SQL Server conține 16 extensii.

Pentru a face alocarea eficientă a spațiului, SQL Server nu plasează întregul la tabele cu extinderile cantități mici de date. SQL Server are două tipuri de extensii.

omogeni aparțin extensii aceluiași obiect; toate cele opt pagini din cluster poate fi utilizat numai acele obiecte care dețin.

pot fi amestecate proporții în uz comun, la nu mai mult de opt obiecte. Fiecare dintre cele opt pagini, în măsura în care poate fi deținută de diferite obiecte.

Un nou tabel sau index - aceasta este pagina este de obicei izolat din amestec extensii. Prin creșterea dimensiunii tabelului sau indexul la opt pagini din tabel sau indexul sunt trecerea la uniforme pentru extensiile unitățile de distribuție ulterioare. Când creați un index pentru o tabelă existentă care conține suficiente rânduri pentru a genera opt pagini în index, toate unitățile de distribuție pentru indicele sunt în uniforme proporții.