Cunoștințe, prelegere, crearea de baze de date

Rezumat: O imagine de ansamblu a tuturor subtilităților de lucru la crearea bazelor de date: de la teorie la acțiuni practice. Fișierele de date primare și secundare, fișierele de jurnalizare a tranzacțiilor, grupurile de fișiere - toate acestea reprezintă cunoștințele necesare, contribuind la organizarea mai eficientă a activității bazei de date, capabile de scalabilitate, stabilitate și funcționare rapidă. Tot felul de reguli și recomandări limitează administratorul de la acțiuni incorecte. Prezentare generală a patru baze de date de sistem (master, tempdb, model, msdb). Exemple de utilizare a Expertului de creare a bazei de date, Enterprise Manager, T-SQL vă permite să alegeți o modalitate mai eficientă de a crea o bază de date. O atenție deosebită este acordată T-SQL, tk. Utilizarea sa în cursurile următoare va deveni mult mai largă.







Structura bazei de date

Fiecare bază de date SQL Server constă dintr-un set de fișiere de sistem de operare. Aceste fișiere pot fi grupate în grupuri de fișiere. care facilitează administrarea acestora, ajută la plasarea datelor și îmbunătățește performanța. În această secțiune, veți fi familiarizați cu fișierele și grupurile de fișiere SQL Server și veți afla despre importanța acestora pentru crearea de baze de date.

După cum am spus, baza de date SQL Server constă într-un set de fișiere de sistem de operare. Un fișier de bază de date poate fi fie un fișier de date. sau un fișier jurnal. Fișierele de date sunt utilizate pentru a stoca date și obiecte, cum ar fi tabele, indexuri, vizualizări, declanșatoare și proceduri stocate. Există două tipuri de fișiere de date: primare și secundare. Fișierele de jurnal servesc doar pentru stocarea informațiilor din jurnalele de tranzacții. Spațiul de disc alocat fișierelor de jurnal trebuie să fie gestionat întotdeauna separat de spațiul alocat datelor și nu trebuie să facă niciodată parte din fișierul de date.

Fiecare bază de date trebuie să fie creată cu cel puțin un fișier de date și un fișier de jurnal; fișierele nu pot fi utilizate în mai multe baze de date - adică bazele de date nu pot partaja fișiere (utilizați fișiere împreună). Lista de mai jos prezintă trei tipuri de fișiere care pot fi utilizate în baze de date:

  • Fișiere de date primare. Fișierele cu date primare conțin toate informațiile pentru pornirea bazei de date și a tabelelor și obiectelor sale de sistem. Acestea indică alte fișiere create în baza de date. Ele pot conține și tabele și obiecte specificate de utilizator, deși acest lucru nu este necesar. Fiecare bază de date poate avea exact un fișier primar. Pentru aceste fișiere, se recomandă utilizarea extensiei .mdf.
  • Fișiere secundare de date. Fișierele secundare de date nu sunt obligatorii. Ele pot stoca date și obiecte care nu sunt în fișierul primar. Este posibil ca baza de date să nu aibă deloc nicio fișiere secundare (dacă toate datele sunt stocate în fișierul principal). Puteți avea zero, unul sau mai multe fișiere secundare. Pentru unele baze de date, este necesar să aveți mai multe fișiere secundare pentru a plasa date pe mai multe discuri separate. (Acestea nu sunt matrice RAID de discuri, după cum veți vedea în secțiunea următoare). Pentru aceste fișiere, extensia .ndf este recomandată.
  • Fișierele jurnalului de tranzacții. Fișierele jurnalului de tranzacții stochează toate informațiile din jurnalul de tranzacții, care se utilizează pentru a restaura baza de date. Fiecare bază de date trebuie să aibă cel puțin un fișier jurnal și poate avea mai multe fișiere log. Pentru aceste fișiere, extensia .ldf este recomandată.

Notă. Dimensiunea maximă a fișierelor bazei de date SQL Server este de 32 terabytes pentru fișierele de date și 4 terabyte pentru fișierele de jurnal.

O bază de date simplă poate avea un fișier de date primar suficient de mare pentru ca acesta să se potrivească tuturor datelor și obiectelor și un fișier - jurnalul de tranzacții. O bază de date mai complexă poate avea un fișier de date primar, cinci fișiere de date secundare și două fișiere de jurnalizare a tranzacțiilor.

Dar cum pot fi plasate datele în mai multe fișiere de date? În acest scop, se folosesc grupuri de fișiere.

Grupuri de fișiere

Cu ajutorul grupurilor de fișiere, puteți grupa fișiere, acest lucru fiind necesar pentru administrare și plasare de date. (Grupurile de fișiere sunt similare segmentelor din Microsoft SQL Server 6.5 și versiunile anterioare.) Folosirea grupurilor de fișiere îmbunătățește performanța bazei de date deoarece devine posibilă crearea unei baze de date situate pe mai multe discuri, pe mai multe controlere și pe aritme RAID. (Despre RAID-matrice vezi. „Configurarea și planificarea subsistemului de intrare-ieșire.“), Puteți crea tabele și indecși care urmează să fie introduse pe discul fizic specificat folosind grupurile de fișiere, controlerele și matrice de discuri. În această prelegere vom examina câteva exemple de astfel de lucrări.

Există trei tipuri de grupuri de fișiere cu următoarele proprietăți de bază:







  • Grupuri primare de fișiere. Conține fișierul de date primar și toate celelalte fișiere care nu sunt plasate în alte grupuri de fișiere. Grupul primar de fișiere de baze de date reprezintă tabele de sistem care specifică utilizatorii, obiectele și autoritățile pentru această bază de date. SQL Server creează automat aceste tabele de sistem ori de câte ori creați o bază de date.
  • Grupuri de utilizatori de fișiere. Toate grupurile de fișiere specificate de utilizator în timpul creării (sau modificării ulterioare) a bazei de date. Când creați un tabel sau un index, puteți specifica faptul că acestea sunt plasate în grupul de fișiere specificat de utilizatori.
  • Grupul standard de fișiere. Conține toate paginile pentru tabele și indexuri care nu au creat un anumit grup de fișiere în timpul creării. În mod implicit, grupul de fișiere standard este grupul primar de fișiere. Membrii din rolul db_owner pot schimba grupul prestabilit de fișiere, făcând unul standard sau un alt grup de fișiere. În orice moment, numai un singur grup de fișiere poate fi standard și, din nou, dacă grupul de fișiere standard nu a fost specificat explicit, grupul primar de fișiere va fi automat standard. Pentru a modifica grupul de fișiere implicit, utilizați următoarea comandă Transact SQL (T-SQL):

(Utilizați T-SQL, veți învăța în ultima lectura a cursului.) Poate doriți să schimbați grupul implicit de fișier, astfel încât acesta a devenit unul dintre grupurile de fișiere personalizate, atunci toate obiectele care sunt create în baza de date va fi creat automat în grupul specificat tine fișiere și nu trebuie să cereți acest lucru de fiecare dată.

Pentru a îmbunătăți performanța, puteți gestiona plasarea datelor creând tabele și indexuri în diferite grupuri de fișiere. De exemplu, ați putea dori să plaseze masa, la care accesul este adesea cazul, un grup de fișiere de pe o gama larga de discuri (de exemplu, compus din 10 discuri), iar cealaltă masă, care este accesat mai rar, plasate într-un alt grup de fișiere localizate pe o separat, o gamă mai mică de discuri (de exemplu, de la 4 discuri). Astfel, este posibil de a plasa un tabel, la care accesul se întâmplă mai des pe mai multe discuri, permițând discurilor pentru a efectua în paralel de intrare-ieșire. Dacă nu utilizați matrice RAID și aveți mai multe unități de disc, puteți utiliza în continuare grupuri de fișiere. De exemplu, puteți crea un fișier separat pentru fiecare unitate de disc, plasând fiecare fișier într-un grup separat de fișiere de utilizatori. Apoi, puteți plasa fiecare tabel sau dintr-un fișier separat (și pe un disc separat), numirea unui grup de fișiere atunci când creați tabelul sau index. Un exemplu de localizare a fișierelor este prezentat în Fig. 9.1. un fișier de date primare se află în grupul principal de fișiere de pe unitatea C, un fișier de date secundar este plasat în fiecare dintre grupurile de fișiere personalizate (FG1 și FG2) pe disc E și F, și un fișier jurnal este situat pe unitatea G. După aceea, puteți crea tabele și indexuri în fiecare grup de utilizatori de fișiere - FG1 sau FG2.


Fig. 9.1. Aplicarea grupurilor de fișiere pentru gestionarea destinației de plasare a datelor

Sau poate veți folosi un grup personalizat de fișiere pentru a distribui date pe mai multe discuri. În Fig. 9.2 prezintă un grup de utilizatori fișiere FG1 formate din două fișiere secundare de date, dintre care unul este pe disc E, iar celălalt - discul F (G disc este pus fișier jurnal, și C - imaginea primara). În acest exemplu, presupunem din nou că fiecare fișier de bază de date este creat pe o unitate fizică separată și nu avem o implementare hardware RAID. Tabelele și indexurile create în grupul de utilizatori de fișiere, vor fi plasate pe două unități, deoarece SQL Server utilizează o strategie de utilizare proporțională a resurselor.


Fig. 9.2. Aplicarea unui grup de fișiere pentru a distribui date pe mai multe discuri

Dacă utilizați sistemul RAID, poate fi necesar pentru a distribui date dintr-un tabel de mari dimensiuni pe mai multe unități logice, tablouri, configurate în două sau mai multe, controlorii RAID. Pentru a face acest lucru, va trebui să creați un grup personalizat de fișiere, cu fișierele corespunzătoare fiecăruia dintre aceste controlere. Să presupunem că ați creat două fișiere de date secundare, fiecare - în matrice de pe disc, iar fiecare matrice logica este format din opt unități fizice configurate ca RAID 5. Aceste două matrice sunt gestionate de două RAID-controlere separate. Pentru a crea un tabel sau indicele este situat pe ambele controlere (de exemplu, toate cele 16 unități de disc), creați un grup de utilizatori de fișiere, care a pus ambele fișiere, și apoi să creați un tabel sau indice în acest grup de fișiere. Fișierele FG1 grup de utilizatori distribuite peste 16 unități fizice (două unități logice - RAID-array) (vezi Figura 9.3 ..). De asemenea, afișează fișierul de date primar de pe celălalt controler (cu RAID 1) și fișierul jurnal pe un alt controler (cu RAID 10).

SQL Server vă permite să optimizați distribuția datelor pe unități de disc, prin legarea (distribuția) proporțională în mod automat a datelor în toate fișierele dintr-un grup de fișiere. "Stratificare" (striping) este un termen folosit pentru a descrie distribuția datelor în mai multe fișiere de baze de date. Îndepărtarea fișierelor SQL Server funcționează independent de stratificarea discurilor RAID și, așa cum ați văzut în exemplele noastre, pot fi utilizate în combinație cu RAID sau pe cont propriu.

Pentru a asigura stratificarea datelor, SQL Server scrie date în fișiere în volume proporțional cu spațiul liber rămas în fișiere (spațiu relativ liber în alte fișiere). Locul pentru tabele și indexuri este distribuit sub formă de extensii. Mărimea este o unitate pentru măsurarea spațiului pe disc, o mărime constă din 8 pagini, iar o pagină este formată din 8 KB, deci o extensie constă din 64 KB. Să presupunem că trebuie să alocați 5 extensii unui fișier F1, care este liber de 400 MB, și unui fișier F2, care este gratuit 100 MB; apoi vor fi distribuite 4 extensii în fișierul F1 și o măsură este alocată fișierului F2. Ambele fișiere vor fi completate până la sfârșit aproximativ în același timp, astfel încât operațiile de I / O vor fi distribuite mai uniform între discuri. Funcționarea proporțională va fi aplicată atât utilizatorilor, cât și grupurilor de fișiere primare. Dacă specificați toate fișierele dintr-un grup de fișiere care au aceeași dimensiune inițială, atunci datele vor fi distribuite uniform ca fișierele încărcate. Această metodă, atunci când sunt create grupuri de fișiere cu aceeași dimensiune inițială, poate fi recomandată pentru distribuirea uniformă a datelor pe unitățile de disc și, în același timp, pentru distribuirea uniformă a operațiilor I / O.


Fig. 9.3. Distribuiți un grup de utilizatori de fișiere între mai multe controlere RAID







Articole similare

Trimiteți-le prietenilor: