Užitočné informácie o používaní nastavenia autogrow a nastavenia autoshrink v aplikácii SQL Server

Preklady článku Preklady článku
ID článku: 315512 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

SUHRN

Predvolené nastavenia autogrow a autoshrink budú na mnohých systémoch s aplikáciou SQL Server pracovať bez ladenia. Existujú aj také prostredia, v ktorých nie je nutné tieto nastavenia zapnúť, resp. v ktorých môže byť vhodné upraviť parametre nastavení autogrow a autoshrink. V tomto článku nájdete podrobné informácie, ktoré vám pomôžu v prípade, že vo svojom prostredí tieto nastavenia vyberiete.

DALSIE INFORMACIE

Uvádzame niekoľko informácií, ktoré by ste mali vziať do úvahy, ak sa rozhodnete ladiť parametre nastavení autogrow a autoshrink.

Ako mám postupovať pri konfigurácii nastavení?

  1. Na konfiguráciu nastavení autogrow a autoshrink môžete použiť:
    • príkaz ALTER DATABASE (v aplikácii SQL Server 7.0 nie je k dispozícii)
    • nástroj SQL Server Management Studio alebo SQL Enterprise Manager
    • Uloženú procedúru sp_dboption (nepovolená v aplikácii SQL Server 2005)
    Poznámka: Ak používate aplikáciu SQL Server 2005, použite namiesto nástroja SQL Enterprise Manager nástroj SQL Server Management Studio. Ďalšie informácie o nastavení týchto nastavení v aplikácii SQL Server 2005 nájdete na nasledujúcich webových lokalitách siete Microsoft Developer Network (MSDN):
    Článok s postupom: Pridanie údajových súborov alebo súborov denníkov do databázy (SQL Server Management Studio)
    http://msdn.microsoft.com/sk-sk/library/ms189253.aspx
    Vlastnosti databázy (stránka so súbormi)
    http://msdn.microsoft.com/sk-sk/library/ms180254.aspx
    Možnosť autogrow môžete konfigurovať aj pri vytváraní databázy.

    Aktuálne nastavenia si zobrazíte vo vlastnostiach databázy v nástroji SQL Enterprise Manager (SEM). Alebo môžete spustiť nasledujúci príkaz Transact-SQL:
    sp_helpdb [ [ @dbname= ] 'name' ]
  2. Pamätajte, že nastavenia autogrow sa vzťahujú vždy na jeden súbor. Z tohto dôvodu ich musíte pre každú databázu nastaviť aspoň na dvoch miestach (jedno je pre hlavný údajový súbor a druhé pre hlavný súbor denníka). Ak máte viaceré údajové súbory alebo súbory denníkov, musíte tieto možnosti nastaviť pre každý súbor. V závislosti od prostredia sa môže stať, že pre každý databázový súbor použijete iné nastavenia.

Aké sú dopady na výkon?

  • Ak spustíte transakciu, ktorá požaduje pre denník viac miesta ako je k dispozícii, a zapli ste možnosť autogrow pre denník transakcií danej databázy, potom sa čas potrebný na dokončenie transakcie predĺži o čas, ktorý trvá operácia zväčšenia denníka transakcií o nakonfigurovanú hodnotu. Aj je prírastok veľký alebo sa vyskytol iný faktor, ktorý spôsobuje, že operácia zväčšenia trvá príliš dlhý čas, potom môže dôjsť k zlyhaniu dotazu, v ktorom ste otvorili transakciu, z dôvodu uplynutia časového limitu. Rovnaký problém sa môže vyskytnúť pri použití funkcie autogrow na časti údajov databázy. Ak chcete zmeniť konfiguráciu nastavenia autogrow, prečítajte si tému ALTER DATABASE v publikáciách SQL Server Books Online.
  • Ak spustíte veľkú transakciu, ktorá požaduje zväčšenie denníka, na dokončenie operácie zväčšenia budú musieť počkať tiež všetky ostatné transakcie, ktoré požadujú vykonanie zápisu do denníka transakcií.
  • Ak skombinujete možnosti autogrow a autoshrink, výsledkom môže byť vznik nepotrebnej réžie. Uistite sa, že prahové hodnoty, ktoré spúšťajú operácie zväčšenia a zmenšenia, nebudú spôsobovať časté zmeny veľkosti. Môže sa napríklad stať, že spustíte transakciu, ktorá v čase spustenia spôsobí zväčšenie denníka transakcií o 100 MB. Po istom čase sa spustí funkcia autoshrink a zmenší veľkosť denníka transakcií o 100 MB. Potom spustíte tú istú transakciu a ona znovu spôsobí zväčšenie denníka transakcií o 100 MB. V tomto príklade vytvárate zbytočnú réžiu a potenciálne môže dochádzať k fragmentácii súboru denníka, čo môže mať negatívny vplyv na výkon.
  • Fyzická fragmentácia spôsobená menením veľkosti údajových súborov alebo súborov denníkov môže mať vážny dopad na výkon. Toto platí pri použití automatických nastavení, ako aj pri častom manuálnom zväčšovaní a zmenšovaní súborov.
  • Ak budete zväčšovať databázu v malých prírastkoch alebo ju budete zväčšovať a potom zmenšovať, môže to spôsobiť fragmentáciu disku. Fragmentácia disku môže za určitých okolností spôsobiť problémy s výkonom. Výkon systému sa môže znížiť aj pri malých prírastkových zväčšeniach.
  • V aplikácii SQL Server 2005 a v jej novších verziách môžete zapnúť okamžitú inicializáciu súborov. Okamžitá inicializácia súborov zrýchľuje proces alokovania súborov iba v prípade údajových súborov. Okamžitá inicializácia súborov nepracuje so súbormi denníkov.
  • Ak máte v súboroch denníkov veľa nárastov súborov, pravdepodobne používate neúmerne vysoký počet virtuálnych súborov denníkov (VLF). Toto môže spôsobovať problémy s výkonom pri spúšťaní databáz alebo pri operáciách online, replikácii, zrkadlení a pri zaznamenávaní zmenených údajov (CDC). Môže to tiež spôsobovať problémy s výkonom pri úpravách údajov.

Najvhodnejšie postupy

  • V spravovanom produkčnom systéme si musíte uvedomiť, že funkcia autogrow je iba kontingenciou pre prípad neočakávaného rastu. Nepoužívajte funkciu autogrow na každodennú správu zväčšení údajov a denníkov.
  • Na proaktívne sledovanie veľkostí súborov a ich zväčšovanie môžete používať upozornenia a monitorovacie programy. Takto budete predchádzať fragmentácii a budete môcť presunúť vykonávanie takejto údržby na čas mimo prevádzkovej špičky.
  • Funkcie autoShrink a autogrow musí pozorne vyhodnotiť školený správca databáz a tieto funkcie sa nesmú ponechať nespravované.
  • Prírastok pre funkciu autogrow musí byť dostatočne veľký, aby sa predišlo poklesom výkonu popísaným v predchádzajúcej časti. Presná hodnota, ktorú je vhodné použiť v nastavení vašej konfigurácie, ako aj nastavenie zväčšovania o určité percento alebo o konkrétnu veľkosť v MB závisí vo vašom prostredí od mnohých faktorov. Všeobecné pravidlo vychádzajúce z praxe, ktorým sa môžete riadiť pri testovaní, odporúča nastaviť funkciu autogrow na približne jednu osminu veľkosti súboru.
  • Pre každý súbor zapnite nastavenie <MAXSIZE>, aby sa predišlo zväčšeniu týchto súborov na veľkosť, ktorá zaberie všetko miesto dostupné na disku.
  • Veľkosť transakcií udržiavajte čo najmenšiu, aby sa predišlo neplánovanému zväčšeniu súborov.

Prečo mám dávať pozor na miesto na disku, keď sú nastavenia veľkosti riadené automaticky?

  • Nastavenie funkcie autogrow nemôže zväčšiť veľkosť databázy nad limity dostupného miesta na disku, ktoré sú nastavené na jednotkách, pre ktoré sú súbory definované. Z tohto dôvodu je nutné vykonávať nezávislú kontrolu veľkosti dostupného miesta na pevnom disku aj vtedy, keď na nastavovanie veľkosti databáz používate funkciu autogrow. Nastavenie funkcie autogrow je tiež obmedzené parametrom MAXSIZE, ktorý nastavujete pre každý súbor. Možnosť výskytu problému s nedostatkom miesta môžete obmedziť sledovaním počítadla nástroja Performance Monitor na sledovanie výkonu SQL Server: Databases Object :Data File(s) Size (KB) a nastavením upozornenia, ktoré sa zobrazí, keď veľkosť databázy narastie na určitú hodnotu.
  • Neplánované zväčšenie údajových súborov alebo súborov denníkov môže zabrať miesto využívané inými aplikáciami, ktoré očakávajú, že bude toto miesto dostupné, a môže tiež spôsobiť výskyt problémov pri používaní takýchto aplikácií.
  • Prírastok zväčšenia denníka transakcií musí byť dostatočne veľký, aby vždy v predstihu spĺňal požiadavky a potreby transakčných jednotiek. Aj po zapnutí funkcie autogrow sa môže zobraziť hlásenie, ktoré informuje, že je denník transakcií plný. Dôvodom môže byť príliš pomalé zväčšovanie denníka transakcií, ktoré nedokáže splniť požiadavky vášho dotazu.
  • Aplikácia SQL Server nevykonáva nepretržité testovanie databáz, ktoré dosiahli prahovú hodnotu nakonfigurovanú pre funkciu autoshrink. Namiesto toho kontroluje dostupné databázy a vyhľadáva prvú databázu, ktorá má nakonfigurovanú funkciu automatického zmenšovania. Vykoná kontrolu tejto databázy a v prípade potreby zmenší jej veľkosť. Potom pred kontrolou ďalšej databázy s nakonfigurovanou funkciou autoshrink niekoľko minút čaká. Inak povedané, aplikácia SQL Server nekontroluje všetky databázy naraz ani ich naraz nezmenšuje. Aplikácia postupne cyklicky prechádza všetky databázy, aby postupne znižovala vyťaženie. Od počtu databáz v určitej inštancii aplikácie SQL Server, pre ktoré ste nakonfigurovali funkciu autoshrink, teda závisí, či bude medzi dosiahnutím prahovej hodnoty nastavenej pre databázu a samotným zmenšením databázy rozstup niekoľkých hodín.

ODKAZY

Ďalšie informácie o zväčšovaní a zmenšovaní databázových súborov a súborov denníkov nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledujúce číslo:
256650 Návod na zmenšenie denníka transakcií aplikácie SQL Server 7.0
272318 Zmenšenie denníka transakcií v aplikácii SQL Server 2000 pomocou príkazu DBCC SHRINKFILE
317375 Denník transakcií sa na počítači s aplikáciou SQL Server neočakávane zväčšuje alebo zapĺňa
247751 CHYBA: Plán údržby databáz nevykonáva zmenšenie veľkosti databázy
305635 Počas automatického rozbaľovania databázy dochádza k uplynutiu časového limitu
949523 Oneskorenie transakčnej replikácie je v aplikácii SQL Server 2005 príliš dlhé, keď sú pre vlastnosť Initial Size a pre vlastnosť Autogrowth zadané malé hodnoty
Ďalšie informácie o inicializácii databázových súborov nájdete na nasledujúcej webovej lokalite siete Microsoft Developer Network (MSDN):
Inicializácia databázových súborov
Ďalšie informácie o zapnutí funkcie okamžitej inicializácie súborov nájdete na nasledujúcej webovej lokalite spoločnosti Microsoft:
Kedy a prečo je vhodné zapnúť okamžitú inicializáciu súborov
Ďalšie informácie o fyzickej architektúre denníkov transakcií nájdete na nasledujúcej webovej lokalite siete MSDN:
Fyzická architektúra denníkov transakcií

Publikácie SQL Server Books Online; témy: téma s názvom Transaction Log Physical Architecture s informáciami o fyzickej architektúre denníkov transakcií; téma s názvom Shrinking the Transaction Log venovaná zmenšovaniu denníka transakcií

Vlastnosti

ID článku: 315512 - Posledná kontrola: 17. septembra 2011 - Revízia: 4.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
Kľúčové slová: 
kbsqlmanagementtools kbinfo KB315512

Odošlite odozvu

 

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