În plus față de crearea de copii de siguranță, există o varietate de sarcini și funcții pe care le oferă SQL Server, care pot îmbunătăți performanța și fiabilitatea bazelor de date. Noi v-am arătat anterior cum să efectuați o copie de rezervă a bazelor de date SQL Server cu un script simplu de linie de comandă, astfel încât în același mod să furnizăm un script care vă va permite să efectuați cu ușurință sarcini comune de întreținere.
Compactarea / micșorarea unei baze de date [/ Compact]
Există mai mulți factori care contribuie la spațiul fizic pe disc pe care o utilizează o bază de date SQL Server. Doar pentru a numi câteva:
Compactarea (sau micșorarea) bazei de date va recupera spațiul de disc neutilizat. Pentru bazele de date mici (200 MB sau mai puțin) aceasta nu va fi foarte mare, dar pentru bazele de date mari (1 GB sau mai mult) spațiul recuperat poate fi semnificativ.
Reindexarea unei baze de date [/ Reindex]
Mai mult ca crearea, editarea și ștergerea în mod constant a fișierelor poate duce la fragmentarea discului, inserarea, actualizarea și ștergerea înregistrărilor dintr-o bază de date poate duce la fragmentarea tabelului. Rezultatele practice sunt aceleași în aceea că operațiile de citire și scriere suferă un succes. Deși nu este o analogie perfectă, reindexarea tabelelor într-o bază de date le defragmentează în esență. În unele cazuri, acest lucru poate crește semnificativ viteza de recuperare a datelor.
Datorită modului în care funcționează SQL Server, tabelele trebuie reinvestite individual. Pentru bazele de date cu un număr mare de tabele, aceasta poate fi o adevărată durere de făcut manual, dar scriptul nostru lovește fiecare tabel din baza de date respectivă și reconstruiește toate indexurile.
Verificarea integrității [/ Verificare]
Pentru ca o bază de date să rămână atât funcțională, cât și să producă rezultate precise, există numeroase elemente de integritate care trebuie să fie în vigoare. Din fericire, problemele de integritate fizică și / sau logică nu sunt foarte frecvente, dar este o practică bună să rulați ocazional procesul de verificare a integrității în bazele dvs. de date și să examinați rezultatele.
Când procesul de verificare este rulat prin scriptul nostru, sunt raportate numai erorile, deci nici o veste nu este o veste bună.
Scriptul batch SQLMaint este compatibil cu SQL 2005 și versiuni ulterioare și trebuie executat pe o mașină care are instalat instrumentul SQLCMD (instalat ca parte a instalării SQL Server). Se recomandă să lăsați acest script într-o locație setată în variabila Windows PATH (adică C: Windows), astfel încât să poată fi ușor apelată ca orice altă aplicație din linia de comandă.
Pentru a vedea informațiile de ajutor, introduceți pur și simplu:
SQLMaint /?
Exemple
Pentru a rula un compactor și apoi a verifica baza de date "MyDB" folosind o conexiune de încredere:
SQLMaint MyDB / Compact / Verificați
Pentru a rula un reindex și apoi compacte pe "MyDB" pe instanța numită "Special" folosind utilizatorul "sa" cu parola "123456":
SQLMaint MyDB /S:.Special / U: sa / P: 123456 / Reindex / Compact
Utilizarea din interiorul unui script batch
În timp ce scriptul batch SQLMaint poate fi folosit ca o aplicație din linia de comandă, atunci când îl folosiți în interiorul unui alt script batch, acesta trebuie precedat cu cuvântul cheie CALL.
De exemplu, acest script execută toate sarcinile de întreținere pe fiecare bază de date non-sistem pe o instalare implicită SQL Server folosind autentificare de încredere:
@CHO OFF
SETLOCAL EnableExtensions
SET DBList = "% TEMP% DBList.txt"
SqlCmd -E -h-1 -w 300-Q "SET Nr. SELECT Numele din master.dbo.sysDatabase WHERE Numele nu este IN ('master', 'model', 'msdb', 'tempdb') ">% DBList%
FORF / F "usebackq tokens = 1" %% i IN (% DBList%) DO (
CALL SQLMaint "%% i" / Compact / Reindex / Verificați
ECHO +++++++++++
)
DACĂ EXIST% DBList% DEL / F / Q% DBList%
ENDLOCAL
Descărcați scriptul SQLMaint Batch Script de la SysadminGeek.com