comprimarea bază de date

Fiecare fișier de bază de date poate fi comprimat prin eliminarea paginilor neutilizate. Desi Database Engine foloseste spatiu pe disc, există situații când fișierele nu mai este necesară o astfel de volum ca și mai înainte. Acest lucru poate duce la nevoia de compresie de fișiere. fișierele de date și registrele de tranzacții, puteți reduce (comprima). Este posibil să se comprima manual fișierele bazei de date (ca un grup sau individual), sau automat, la intervale regulate.

compresie de fișiere este întotdeauna efectuată la sfârșitul anului. De exemplu, în cazul în care există 5 GB de fișiere și în care ca valoarea argumentului target_size DBCC SHRINKFILE set de instrucțiuni de 4 GB, componenta Baza de date Motor elibera cantitatea maximă de spațiu de la ultimul fișier gigabyte. În cazul în care părțile eliberate ale fișierului sunt pagini ocupat, componenta motorului Baza de date a le muta în primul rând la magazin frecvent. Shrink baza de date numai în măsura în care nu este mai mult spațiu. De exemplu, în cazul în care baza de date 5GB conține dimensiunea de 4 GB de date, și ca valoarea argumentului target_size DBCC SHRINKFILE set de instrucțiuni de 3 GB, acesta va fi lansat doar 1 GB.

Dacă parametrul de date AUTO_SHRINK bază este setat pe ON, componenta Database Engine comprimă automat o bază de date în care există un scaun gol. Această setare este configurată folosind instrucțiunea ALTER DATABASE. Implicit, această opțiune este setată pe OFF. Baza de date Motorul verifică periodic utilizarea spațiului pe disc în fiecare bază de date. Dacă parametrul AUTO_SHRINK în baza de date este setat pe ON, componenta Database Engine reduce dimensiunea fișierelor bazei de date. Această operație se realizează în fundal și nu afectează acțiunile utilizatorului în baza de date.

Bază de date Setarea modului de comprimare automată

Baza de date sau fișiere pot fi comprimate manual folosind instrucțiunea DBCC SHRINKDATABASE sau DBCC SHRINKFILE. În cazul în care declarația DBCC SHRINKDATABASE sau DBCC SHRINKFILE nu se poate rezerva tot spațiul de disc specificat în fișierul jurnal, un mesaj informativ care indică faptul că trebuie să fie emise acțiunea, care trebuie urmate pentru a permite spațiu liber pe disc. Pentru mai multe informații despre compresie, consultați fișierele jurnal. Sub comprimarea jurnalului de tranzacții.

Operațiuni DBCC SHRINKDATABASE DBCC SHRINKFILE și poate fi oprită în orice etapă a procesului, cu toate lucrările executate sunt stocate.

Utilizarea instrucțiunilor DBCC SHRINKDATABASE nu poate comprima întreaga bază de date la o dimensiune care este mai mică decât originalul. Prin urmare, în cazul în care baza de date a fost creată cu o dimensiune de 10 MB, iar apoi a crescut la 100 MB, acesta poate fi comprimat numai 10 MB, chiar dacă toate datele sunt șterse din baza de date.

Cu toate acestea, folosind declarația DBCC SHRINKFILE poate comprima fișierele bazei de date individuale la o dimensiune care este mai mică decât cea inițială. În acest caz, fiecare fișier să fie comprimat în mod individual.

Este imposibil de a comprima baza de date sau de jurnal de tranzacții în rezervarea lor. Pe de altă parte, nu puteți crea o copie de rezervă a bazei de date sau a jurnalului de tranzacții în care acestea sunt comprimate.

Acesta oferă extreme fixe la care este posibil pentru a comprima fișierul jurnal de tranzacții. Dimensiunea fișierelor jurnal virtuale în jurnalul de a determina limitele de compresie. Prin urmare, fișierul jurnal nu poate fi comprimat la o dimensiune mai mică decât dimensiunea unui fișier jurnal virtual. În plus, pentru a reduce dimensiunea fișierului jurnal este posibilă numai cu un pas egal cu dimensiunea fișierului jurnal virtual. De exemplu, o dimensiune de fișier jurnal de 1 GB de tranzacții pot consta din cinci fișiere jurnal virtuale de 200 MB fiecare. Atunci când un fișier jurnal de tranzacții comprimarea fișierelor neutilizate jurnal virtuale sunt șterse, dar trebuie să rămână cel puțin două fișiere. Deoarece fiecare fișier jurnal virtual în acest exemplu este un jurnal de tranzacții de 200 MB poate fi comprimat la cel puțin 400 MB în trepte de 200MB. Pentru a putea stoarce mai mult din fișierul jurnal de tranzacții, trebuie să creați o revistă mică și setați modul de zoom automat la dimensiunea sa, mai degrabă decât a crea doar un volum al fișierului jurnal de tranzacții.

comanda DBCC SHRINKDATABASE sau SHRINKFILE DBCC încerca să reducă imediat dimensiunea tranzacției fișier jurnal la dorit (după rotunjire). Înainte de compresie ar trebui să efectueze fișier jurnal de rezervă pentru a reduce dimensiunea jurnalului logic, și marcate ca inactive toate jurnalele virtuale care nu conțin nici o parte a jurnalului logic. Pentru mai multe informații, a se vedea. Secțiunea a compresiei jurnal de tranzacții.

recomandări

Următoarele considerații ar trebui să fie luate în considerare atunci când se planifică comprimarea bazei de date sau un fișier.

Cel mai mare efect este obținut prin operația de comprimare, în cazul în care aceasta se realizează după operație, care creează o mulțime de spațiu irosit (trunchiere sau ștergere a tabelului).

Cele mai multe baze de date pentru a efectua operațiunile zilnice normale necesită o anumită cantitate de spațiu liber. În cazul în care comprimarea bazei de date se efectuează în mod regulat, dar crește din nou în mărime, ceea ce înseamnă că eliberarea spațiului de comprimare este necesar pentru operațiunile regulate. În astfel de cazuri, re-compact, baza de date este lipsită de sens.

compresie a bazei de date de operare nu elimină fragmentarea indicilor, ci dimpotrivă, sunt de obicei chiar mai crește. De exemplu, nu comprima fișierul de bază de date sau după ajustarea indicelui. Acesta este un alt motiv pentru a renunța la re-compact baza de date.

Nu instalați opțiunea de bază de date pe ON AUTO_SHRINK fără o justificare suficientă.

Tranzacțiile pot bloca operațiune de compresie, care se realizează cu nivelul de izolare bazat pe controlul versiunilor rând. De exemplu, atunci când se efectuează o operație la scară largă de îndepărtare nivel de izolare bazat pe versionare rând pentru a efectua manual DATABASE DBCC SHRINK, apoi, înainte de a trece la un fișier comprimat, acesta va aștepta finalizarea operației de ștergere. În acest caz, operațiunea DBCC SHRINKFILE și ieșirea DBCC SHRINKDATABASE în SQL Server jurnal de mesaj de eroare de informare (5202 pentru SHRINKDATABASE și 5203 pentru SHRINKFILE), făcându-l la fiecare 5 minute în timpul primei ore, iar apoi un mesaj la fiecare oră. Pentru informații suplimentare. A se vedea DBCC SHRINKDATABASE (Transact-SQL).