Considerente privind setările „autogrow” ?i „autoshrink” din SQL Server

Traduceri articole Traduceri articole
ID articol: 315512 - View products that this article applies to.
Măriți totul | Reduceți totul

REZUMAT

Setările implicite autogrow ?i autoshrink vor fi func?iona automat fără reglaje pe multe dintre sistemele SQL Server. Însă, există medii în care nu trebuie să activa?i setările sau în care este necesar să regla?i parametrii pentru autogrow ?i autoshrink. Acest articol vă oferă unele informa?ii de fundal pentru a vă îndruma atunci când selecta?i setările pentru mediul dvs.

INFORMAȚII SUPLIMENTARE

Iată câteva lucruri de luat în considerare dacă decide?i să regla?i parametrii autogrow ?i autoshrink.

Cum configurez setările?

  1. Ave?i posibilitatea să configura?i setările autogrow ?i autoshrink utilizând una dintre următoarele:
    • O instruc?iune ALTER DATABASE (nu este disponibilă în SQL Server 7.0)
    • SQL Server Management Studio sau SQL Enterprise Manager
    • Procedura stocată sp_dboption (perimată în SQL Server 2005)
    Notă Dacă utiliza?i SQL Server 2005, utiliza?i SQL Server Management Studio în loc de SQL Enterprise Manager. Pentru mai multe informa?ii despre cum se setează aceste setări în SQL Server 2005, accesa?i următoarele site-uri Web Microsoft Developer Network (MSDN):
    Cum să: Adăuga?i date sau fi?iere jurnal la o bază de date (SQL Server Management Studio)
    http://msdn2.microsoft.com/ro-ro/library/ms189253.aspx
    Proprietă?ile bazei de date (Pagina de fi?iere)
    http://msdn2.microsoft.com/ro-ro/library/ms180254.aspx
    De asemenea, ave?i posibilitatea să configura?i op?iunea autogrow când crea?i o bază de date.

    Ave?i posibilitatea să vizualiza?i setările curente prin proprietă?ile bazei de date în SQL Enterprise Manager (SEM). Sau, ave?i posibilitatea să executa?i următoarea comandă Transact-SQL:
    sp_helpdb [ [ @dbname= ] 'name' ]
  2. Re?ine?i că setările autogrow se aplică pentru fiecare fi?ier. De aceea, trebuie să le seta?i în cel pu?in două locuri pentru fiecare bază de date (odată pentru fi?ierul de date principal ?i odată pentru fi?ierul jurnal principal). Dacă ave?i mai multe fi?iere de date ?i/sau jurnal, trebuie să seta?i op?iunile pentru fiecare fi?ier. În func?ie de mediul dvs., este posibil ca în final să ave?i setări diferite pentru fiecare fi?ier bază de date.

Care sunt implica?iile pentru performan?ă?

  • Dacă executa?i o tranzac?ie care necesită mai mult spa?iu de înregistrare în jurnal decât este disponibil ?i a?i activat op?iunea autogrow pentru jurnalul de tranzac?ii al acelei baze de date, atunci durata de timp necesară pentru efectuarea tranzac?iei va include timpul necesar pentru ca jurnalul tranzac?iei să crească cu cantitatea configurată. Dacă incrementul de cre?tere este mare sau există un alt factor care determină o durată mare de timp, interogarea în care deschide?i tranzac?ia poate să nu reu?ească din cauza unei erori de expirare. Acela?i gen de problemă poate apărea ca rezultat al unei cre?teri automate a unei por?iuni de date din baza de date. Pentru a modifica configura?ia autogrow, consulta?i subiectul „ALTER DATABASE” din SQL Server Books Online.
  • Dacă executa?i o tranzac?ie mare care necesită cre?terea jurnalului, atunci celelalte tranzac?ii care trebuie să scrie în jurnalul de tranzac?ii vor trebui să a?tepte până când se termină opera?iunea de cre?tere.
  • În cazul în care combina?i op?iunile autogrow ?i autoshrink, este posibil să crea?i o suprasarcină nenecesară. Asigura?i-vă că pragurile care declan?ează opera?iunile de cre?tere sau mic?orare nu vor genera cre?teri sau mic?orări frecvente de dimensiune. De exemplu, este posibil să executa?i o tranzac?ie care determină cre?terea jurnalului de tranzac?ie cu 100 MO până la momentul realizării ei. La un moment dat după aceea, se porne?te autoshrink ?i mic?orează jurnalul de tranzac?ii cu 100 MO. Apoi, executa?i aceea?i tranzac?ie, care determină din nou cre?terea jurnalului de tranzac?ii cu 100 MO. În acest exemplu, crea?i o suprasarcină nenecesară ?i o fragmentare poten?ială a fi?ierului jurnal, iar oricare dintre aceste două aspecte pot afecta negativ performan?ele.
  • Fragmentarea fizică rezultată din modificarea dimensiunii fi?ierelor de date sau de jurnal pot afecta serios performan?ele. Acest lucru este valabil indiferent dacă utiliza?i setări automate sau dacă cre?te?i sau mic?ora?i frecvent aceste fi?iere în mod manual.
  • Dacă cre?te?i baza de date cu incremente mici sau dacă o cre?te?i ?i o mic?ora?i, aceste ac?iuni pot avea ca rezultat fragmentarea discului. Fragmentarea discului poate provoca probleme de performan?e în unele circumstan?e. Un scenariu de incrementări mici de cre?tere poate să reducă, de asemenea, performan?ele sistemului.
  • În SQL Server 2005 sau în versiunile anterioare, ave?i posibilitatea să activa?i ini?ializarea instantanee a fi?ierelor. Ini?ializarea instantanee a fi?ierelor poate cre?te viteza alocării fi?ierelor doar pentru fi?ierele de date. Ini?ializarea instantanee a fi?ierelor nu se aplică pentru fi?ierele jurnal.
  • Dacă ave?i multe cre?teri de fi?iere în fi?ierele jurnal, este posibil să ave?i un număr excesiv de mare de fi?iere jurnal virtuale (VLF). Astfel, pot apărea probleme de performan?e privind opera?iunile online/de pornire ale bazei de date, opera?iunile de reproducere, oglindire ?i capturare a modificărilor de date (CDC). În plus, acest lucru poate determina uneori probleme de performan?e privind modificările de date.

Practici recomandate

  • Pentru un sistem de produc?ie gestionată, trebuie să lua?i în considerare ca setarea autogrow să fie doar o măsură de aplicat pentru cre?terile nea?teptate. Nu gestiona?i cre?terea jurnalului ?i a datelor din func?ionarea curentă folosind autogrow.
  • Ave?i posibilitatea să utiliza?i programe de avertizare ?i monitorizare pentru a supraveghea proactiv dimensiunile fi?ierelor ?i cre?terea acestora. Acest lucru vă ajută să evita?i fragmentarea ?i vă permite să plasa?i aceste activită?i de între?inere în afara orelor de vârf.
  • Op?iunile AutoShrink ?i autogrow trebuie să fie evaluate cu grijă de un administrator de baze de date (DBA) calificat; ele nu trebuie să rămână negestionate.
  • Incrementul autogrow trebuie să fie suficient de mare pentru a evita problemele de performan?ă enumerate în sec?iunea anterioară. Valoarea exactă de utilizat în setarea configura?iei ?i alegerea între o cre?tere procentuală ?i o cre?tere fixă a dimensiunii în MO depinde de mul?i factori din mediul dvs. O primă regulă generală care poate fi utilizată pentru testare este să stabili?i setarea autogrow la aproximativ o optime din dimensiunea fi?ierului.
  • Activa?i setarea <MAXSIZE> pentru fiecare fi?ier pentru a împiedica un fi?ier să crească până la punctul în care utilizează tot spa?iul disponibil pe disc.
  • Men?ine?i dimensiunea tranzac?iilor cât mai mică posibil pentru a împiedica cre?terea neplanificată a fi?ierului.

De ce trebuie să mă preocup de spa?iul de pe disc dacă setările de dimensiune sunt controlate automat?

  • Setarea autogrow nu poate cre?te dimensiunea bazei de date dincolo de limitele spa?iului de disc disponibil pe unită?ile pentru care sunt definite fi?ierele. De aceea, dacă vă baza?i pe func?ionalitatea autogrow pentru a dimensiona baza dvs. de date, este în continuare necesar să verifica?i în mod independent spa?iul disponibil de pe hard disk. Setarea autogrow este, de asemenea, limitată de parametrul MAXSIZE pe care îl selecta?i pentru fiecare fi?ier. Pentru a reduce posibilitatea de a rămâne fără spa?iu, ave?i posibilitatea să monitoriza?i contorul Performance Monitor SQL Server: Databases Object :Data File(s) Size (KB) ?i să configura?i o avertizare pentru momentul în care baza de date atinge o anumită dimensiune.
  • Cre?terea neplanificată a fi?ierelor de date sau de jurnal poate ocupa spa?iu pe care alte aplica?ii se a?teaptă să îl găsească disponibil ?i poate determina apari?ia de probleme în alte aplica?ii.
  • Incrementul de cre?tere al jurnalului de tranzac?ii trebuie să fie suficient de mare pentru a devansa nevoile unită?ii de tranzac?ii. Chiar ?i având op?iunea autogrow activată, este posibil să primi?i un mesaj că jurnalul de tranzac?ii este plin, dacă nu poate cre?te suficient de repede pentru a satisface nevoile interogării dvs.
  • SQL Server nu testează constant pentru a găsi baze de date care au atins pragul configurat pentru autoshrink. În schimb, cauză bazele de date disponibile ?i o găse?te pe prima care este configurată pentru mic?orare automată. Verifică acea bază de date ?i o mic?orează dacă este necesar. Apoi, a?teaptă câteva minute înainte să verifice următoarea bază de date configurată cu op?iunea autoshrink. Cu alte cuvinte, SQL Server nu verifică toate bazele de date odată ?i nu le mic?orează pe toate odată. Va trece prin toate bazele de date prin rota?ie pentru a mic?ora sarcina de-a lungul unei perioade de timp. De aceea, în func?ie de numărul de baze de date dintr-o anumită instan?ă de SQL Server pe care le-a?i configurat să se mic?oreze automat, pot trece câteva ore de la momentul în care baza de date atinge pragul până la momentul în care se mic?orează efectiv.

REFERINȚE

Pentru mai multe informa?ii despre cre?terea ?i mic?orarea bazei de date ?i fi?ierelor jurnal, face?i clic pe următoarele numere de articole pentru a le vizualiza în Baza de cuno?tin?e Microsoft:
256650 Cum se mic?orează jurnalul de tranzac?ii SQL Server 7.0 (articolul poate să fie în limba engleză)
272318 Mic?orarea jurnalului de tranzac?ii în SQL Server 2000 cu DBCC SHRINKFILE (articolul poate să fie în limba engleză)
317375 Un jurnal de tranzac?ii cre?te nea?teptat sau devine plin pe un computer care execută SQL Server (articolul poate să fie în limba engleză)
247751 Eroare: Planul de între?inere al bazei de date nu mic?orează baza de date (articolul poate să fie în limba engleză)
305635 Se produce o expirare la extinderea automată a bazei de date (articolul poate să fie în limba engleză)
949523 Laten?a unei reproduceri tranzac?ionale este mare în SQL Server 2005 când valoarea proprietă?ii „Initial Size” ?i valoarea proprietă?ii Autogrowth sunt mici (articolul poate să fie în limba engleză)
Pentru mai multe informa?ii despre ini?ializarea fi?ierelor de baze de date, vizita?i următorul site Web Microsoft Developer Network (MSDN):
Ini?ializarea fi?ierelor de baze de date (poate să fie în limba engleză)
Pentru mai multe informa?ii despre activarea ini?ializării instantanee a fi?ierelor, vizita?i următorul site Web Microsoft:
Cum ?i de ce se activează ini?ializarea instantanee a fi?ierelor (poate să fie în limba engleză)
Pentru mai multe informa?ii despre arhitectura fizică a jurnalului de tranzac?ii, vizita?i următorul site Web MSDN:
Arhitectura fizică a jurnalului de tranzac?ii (poate să fie în limba engleză)

SQL Server Books Online; subiecte: „Transaction Log Physical Architecture”; „Shrinking the Transaction Log”

Proprietă?i

ID articol: 315512 - Ultima examinare: 17 septembrie 2011 - Revizie: 3.0
SE APLICĂ LA:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Cuvinte cheie: 
kbsqlmanagementtools kbinfo KB315512

Trimite?i feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com