Důležité informace týkající se nastavení "Automatické zvětšování" a "autoshrink" v SQL Server

Souhrn

Výchozí nastavení Automatické zvětšování a autoshrink bude pro vás pracovat v mnoha systémech SQL Server bez optimalizace. Existují však prostředí kde není nutné zapnout nastavení nebo kde může být nutné upravit parametry Automatické zvětšování a autoshrink . Tento článek uvádí některé obecné informace o vás, když vyberete nastavení pro dané prostředí.

Další informace

Zde jsou některé kroky, které je třeba zvážit, pokud se rozhodnete optimalizovat parametry Automatické zvětšování a autoshrink .

Konfiguraci nastavení

  1. Nastavení Automatické zvětšování a autoshrink můžete nakonfigurovat pomocí jedné z následujících akcí:
    • Příkaz ALTER DATABASE
    • SQL Server Management Studio
    • Sp_dboption uložené procedury (zastaralé v SQL Server 2005)
    Poznámka: Další informace o nastavení serveru SQL Server 2005 naleznete na následujících webech Microsoft Developer Network (MSDN):
    Jak: Přidat Data nebo soubory protokolu databáze (SQL Server Management Studio)
    http://msdn2.microsoft.com/en-us/library/ms189253.aspx
    Vlastnosti databáze (soubory stránka)
    http://msdn2.microsoft.com/en-us/library/ms180254.aspx
    Můžete také nakonfigurovat možnost Automatické zvětšování při vytvoření databáze.

    Chcete-li zobrazit aktuální nastavení, spusťte následující příkaz Transact-SQL:
    sp_helpdb [ [ @dbname= ] 'name' ]
  2. Mějte na paměti, že nastavení Automatické zvětšování souboru. Proto je nutné je nastavit na nejméně dvou místech pro každou databázi (jeden pro primární datový soubor) a jeden pro primární soubor protokolu. Pokud máte více data a soubory protokolů, je nutné nastavit možnosti každého souboru. V závislosti na prostředí může skončit s různým nastavením jednotlivých souborů databáze.

Jaké jsou důsledky výkonu?

  • Pokud spuštění transakce, které vyžaduje více místa protokolu, než je k dispozici a je zapnuta možnost Automatické zvětšování pro transakční protokol databáze, čas potřebný k dokončení transakce bude obsahovat doby trvání transakce protokolu růst konfigurované částkou. Pokud je velký přírůstek růstu nebo jiných faktor, který způsobuje, že trvá dlouhou dobu, dotaz, ve kterém otevřete transakce může selhat z důvodu chyby vypršení časového limitu. Stejný druh problému může být důsledkem automatické zvětšování datové části databáze. Chcete-li změnit konfiguraci Automatické zvětšování , naleznete v tématu "ALTER DATABASE" v SQL Server Books Online.
  • Pokud spustíte velký transakce, která vyžaduje protokol, který chcete zvětšit, ostatní transakce, které vyžadují zápis do souboru protokolu transakce budou také muset počkat na dokončení operace zvětšit.
  • Pokud zkombinujete možnosti Automatické zvětšování a autoshrink , můžete vytvořit zbytečné režii. Ujistěte se, že prahové hodnoty, které aktivují zvětšit a zmenšit operace nezpůsobí časté nahoru a dolů se mění velikost. Například můžete spustit transakci, která způsobí, že transakce protokolu růst 100 MB v době zavazuje. Některé čas po, že autoshrink spustí a zmenší protokolu transakce 100 MB. Potom můžete spustit stejné transakce a způsobí, že protokol o transakcích znovu rozšířit na 100 MB. V tomto příkladu vytvoříte zbytečné režii a potenciálně vytváření fragmentace souborů protokolu, které buď může negativně ovlivnit výkon.
  • Fyzické fragmentace měnit velikost souborů dat a protokolu mohou mít závažný vliv na výkon. To platí, zda použít automatické nastavení a zda ručně zvětšit a zmenšit soubory často.
  • Růst databáze o malý kousek nebo pokud ji zvětšit a pak ji zmenšit, můžete ukončit s fragmentaci disku. Fragmentaci disku může způsobit problémy s výkonem, za určitých okolností. Scénář malý přírůstek také může snížit výkon systému.
  • V SQL Server 2005 nebo novější můžete povolit inicializace rychlé souboru. Inicializace rychlé souboru urychluje rozdělení souboru pouze pro datové soubory. Inicializace rychlé souboru se nevztahuje na soubory protokolu.
  • Pokud máte mnoho souborů growths v souboru protokolu, bude pravděpodobně příliš velký počet souborů protokolu virtuálních (VLF). To může vést k problémům s výkonem operace spuštění, online databáze, replikace, zrcadlení a změnit sběr dat (CSP). Navíc to někdy může způsobit problémy s výkonem se změny data.

Doporučené postupy

  • Pro spravované výrobního systému je nutné zvážit Automatické zvětšování se pouze pohotovostní neočekávané růstu. Správu dat a protokolů růstu na každodenním základě s Automatické zvětšování.
  • Výstrahy nebo monitorovací programy lze sledovat velikost souborů a aktivně rozšiřovat soubory. To umožňuje vyhnout se fragmentace a umožňuje posunout tyto činnosti údržby bez špičky.
  • AutoShrink a automatické zdvojnásobení velikosti musí být pečlivě vyhodnoceno tak, že vyškolených databáze správce (DBA); nesmí být ponecháno nespravované.
  • Vaše Automatické zvětšování přírůstek musí být dostatečně velká, chcete-li zabránit výkonu sankce uvedené v předchozí části. Přesné hodnoty pro nastavení konfigurace a výběr mezi procentuální růst a výrazný růst MB velikost závisí na mnoha faktorech ve vašem prostředí. Existuje obecné pravidlo pro vás můžete použít pro testování je nastavit nastavení Automatické zvětšování asi osm jedna velikost souboru.
  • Zapněte nastavení pro každý soubor < MAXSIZE > Libovolný jeden soubor zabránit růstu až k bodu, kde používá nahoru všechny dostupné místo na disku.
  • Zachovejte co nejmenší zabránit neplánovaným soubor růst velikosti vašich transakcí.

Proč mít starosti o místo na disku, pokud nastavení velikosti jsou ovládány automaticky?

  • Nastavení Automatické zvětšování nelze zvětšit velikost databáze hranicemi je dostatek místa na jednotkách, které soubory jsou definovány. Proto byste se spoléhat na funkci Automatické zvětšování velikost databáze, je nutné stále nezávisle zkontrolovat volného místa. Nastavení Automatické zvětšování je také omezen parametrem MAXSIZE, které zvolíte pro každý soubor. Snížit možnost nedostatku místa, můžete sledovat čítače sledování výkonu SQL Server: databáze objekt: datové soubory velikost (KB) a nastavit oznámení pro při databáze dosáhne určité velikosti.
  • Neplánované růst souboru dat nebo protokolu mohou využít prostor, aby ostatní aplikace očekává, že budou k dispozici a může způsobit, že ty ostatní aplikace a problémy.
  • Přírůstek z transakčního protokolu musí být dostatečně velký na to, jak mít potřebám vašich transakcí jednotkách. I v případě, že je zapnuto Automatické zvětšování obdržíte zprávu, že je plná, pokud nemůže dostatečně rychle růst k uspokojení potřeb dotazu transakčního protokolu.
  • SQL Server neustále testování u databází, které mají přístupů konfigurovanou prahovou hodnotu pro autoshrink. Místo toho vyhledá v dostupných databázích a najde první, která je nakonfigurována pro autoshrink. Ten zkontroluje databázi a zmenší databáze v případě potřeby. Pak čeká několik minut před kontrolou další databáze, který je nakonfigurován pro autoshrink. Jinými slovy SQL Server není zkontrolujte všechny databáze současně a zmenšení je všechny najednou. Bude pracovat prostřednictvím databází v kruhového dotazování uvádějí zatížení ven přes časové období. V závislosti na tom, kolik databází na konkrétní instanci serveru SQL Server je nakonfigurován na autoshrink, proto může trvat několik hodin od času databáze narazí prahovou hodnotu, dokud skutečně zmenší.

Následující tabulka obsahuje další informace o produktech nebo nástroje, které automaticky zkontroluje tento stav vaší instance serveru SQL Server a verze produktu SQL Server proti které je vyhodnocena pravidlo.

Pravidla softwareNázev pravidlaPopis pravidlaVerze produktu, proti kterým je vyhodnocena pravidlo
Poradce pro System CenterNastavení růst souboru databáze serveru SQL Server je větší než aktuální volné místo na diskuPoradce pro System Center Určuje, zda všechny databáze v instanci serveru SQL Server má automatické růstu nakonfigurován pro databázové soubory. Pokud výsledný přírůstek auto-grow je větší než volné místo na svazku, System Center Advisor generuje varování pro tuto databázi serveru SQL Server. Toto upozornění obdržíte System Center Advisor, přečtěte si auto zvětšit nastavení pro soubory obsahující uvedenou chybu a přijmout nápravná opatření. Tuto situaci lze vyřešit pomocí jedné z následujících metod:
  • Snížit přírůstek růstu tak, že na tomto svazku může dojít další růst.
  • Přidáte více místa na tomto svazku.
  • Tento soubor přesunete na jiný svazek, který má k dispozici místa pro svůj růst.
SQL Server 2008
SQL Server 2008 R2



Odkazy

Další informace o tom, jak zvětšit a zmenšit velikost souborů databáze a protokolu získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

256650 jak zmenšit protokolu transakcí serveru SQL Server 7.0

272318 zmenšením protokolu transakcí v SQL Server 2000 DBCC SHRINKFILE

317375 protokol transakcí neočekávaně roste nebo naplnění v počítači, který je spuštěn SQL Server

247751 Chyba: plán údržby databáze není zmenšit velikost databáze

305635 časový limit, pokud je databáze automatické rozbalování

949523 latence transakční replikace je vysoká v SQL Server 2005 při změně hodnoty vlastnosti "Původní velikost" a hodnotu vlastnosti Autogrowth jsou malé

Další informace o inicializaci souboru databáze naleznete následujícím webu Microsoft Developer Network (MSDN):

Další informace o povolení inicializace rychlé souboru naleznete na následujícím webu společnosti Microsoft:Další informace o architektuře fyzické protokolu transakce naleznete na následujícím webu MSDN:

SQL Server Books Online; témata: "Architektura fyzické transakce protokolu"; "Zmenšením transakční protokol"
Vlastnosti

ID článku: 315512 - Poslední kontrola: 20. 1. 2017 - Revize: 1

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, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard

Váš názor