Tudnivalók az SQL Server rendszer autogrow és autoshrink beállításáról

A cikk fordítása A cikk fordítása
Cikk azonosítója: 315512 - A cikkben érintett termékek listájának megtekintése.
Az összes kibontása | Az összes összecsukása

Összefoglaló

Az alapértelmezett autogrow és autoshrink beállítás további konfigurálás nélkül is működik számos SQL Server rendszerben. Vannak azonban olyan környezetek, amelyekben nem szükséges engedélyezni ezt a két beállítást, illetve amelyekben további beállításokat kell megadni az autogrow és az autoshrink paraméterhez. Ez a cikk háttér-információt nyújt az adott környezetnek megfelelő beállítások kiválasztásához.

További információ

A következőkben az autogrow és az autoshrink paraméter további beállításához kapcsolódó tudnivalókat talál.

Hogyan történik e két paraméter beállítása?

  1. Az autogrow és az autoshrink beállítás konfigurálása az alábbi módszerek valamelyikével lehetséges:
    • Az ALTER DATABASE utasítással (az SQL Server 7.0-s verziójában nem használható)
    • Az SQL Server Management Studio vagy az SQL Enterprise Manager alkalmazással
    • Az sp_dboption tárolt eljárással (az SQL Server 2005 rendszer óta nem használatos)
    Megjegyzés: Az SQL Server 2005 rendszer esetén az SQL Enterprise Manager alkalmazás helyett használja az SQL Server Management Studio programot. Ha többet szeretne tudni e két beállítás SQL Server 2005 rendszerbeli beállításáról, tanulmányozza a Microsoft Developer Network (MSDN) alábbi webhelyeit:
    Adatfájlok és naplófájlok felvétele adatbázisba (SQL Server Management Studio)
    http://msdn.microsoft.com/hu-hu/library/ms189253.aspx
    Adatbázis-tulajdonságok (a Files (Fájlok) lap)
    http://msdn.microsoft.com/hu-hu/library/ms180254.aspx
    Az autogrow paraméter adatbázis-létrehozáskor is beállítható.

    Az érvényben lévő tulajdonságok az SQL Enterprise Manager (SEM) alkalmazásban megjelenített adatbázis-tulajdonságok között tekinthetők meg. Ugyanez érhető el a következő Transact-SQL-parancs futtatásával is:
    sp_helpdb [ [ @dbname= ] 'adatbázisnév' ]
  2. Fontos tudni, hogy az autogrow paraméter beállításait fájlonként kell megadni, így legalább két helyen kell beállítani őket minden adatbázishoz (az egyik helyen az elsődleges adatfájlhoz, a másik helyen pedig az elsődleges naplófájlhoz). Több adatfájl, illetve naplófájl esetén minden fájlon külön-külön kell beállítani a paramétereket. A környezettől függően előfordulhat, hogy minden adatbázisfájl különböző beállításokkal fog rendelkezni.

A teljesítményre gyakorolt hatás

  • Ha a naplózáshoz rendelkezésre állónál több helyet igénylő valamely tranzakció futtatásakor az autogrow paraméter engedélyezve van a szóban forgó adatbázis tranzakciónaplójához, akkor a tranzakció végrehajtásához szükséges időtartamba beleszámít a tranzakciónapló megadott fájlmérettel történő növeléséhez szükséges idő is. Nagy fájlméretnövekmény vagy a művelet elhúzódásához vezető egyéb ok esetén a tranzakció megnyitásához használt lekérdezés időtúllépés miatt sikertelen lehet. Ugyanilyen típusú probléma léphet fel az adatbázis adatrészének automatikus növelése miatt is. Az autogrow paraméter beállításainak megváltoztatásáról az SQL Server Books Online webhely ALTER DATABASE (Az ALTER DATABASE utasítás) című témakörét megkeresve tudhat meg többet.
  • A naplófájl méretének növelését igénylő nagyméretű tranzakció futtatásakor a tranzakciónaplóba írást megkövetelő egyéb tranzakcióknak is meg kell várniuk a méretnövekedés megtörténtét.
  • Az autogrow és az autoshrink paraméter együttes használata szükségtelen többletterhelést jelent a rendszerre nézve. Bizonyosodjon meg arról, hogy a méretnövelést és a zsugorítást kiváltó küszöbértékek nem okoznak gyakori méretnövekedést és méretcsökkenést. Előfordulhat például, hogy a futtatott tranzakció a művelet végére 100 megabájttal (MB) növeli a tranzakciónapló méretét. Bizonyos idő elteltével elindul az autoshrink művelet, és 100 megabájttal csökkenti a tranzakciónaplót. Ezután ugyanazt a tranzakciót futtatva a tranzakciónapló mérete ismét nő 100 megabájttal. Ez a példa jól mutatja, hogy szükségtelen többletterhelésnek van kitéve a rendszer, és töredezetté válhat a naplófájl. Mindkét eset hátrányosan befolyásolhatja a teljesítményt.
  • Az adatfájlok vagy a naplófájlok méretének módosításából adódó fizikai fájltöredezettség még súlyosabb hatást gyakorolhat a teljesítményre. Ez attól függetlenül így van, hogy automatikus beállításokat alkalmaz, vagy manuálisan végzi el a fájlok gyakori méretnövelését vagy zsugorítását.
  • Ha kis lépésekben növeli az adatbázis méretét, esetleg annak növelése után zsugorítja az adatbázist, töredezetté válhat a fájlt tároló lemez. A lemeztöredezettség egyes esetekben teljesítményproblémákhoz vezethet. A rendszer teljesítménye akkor is csökkenhet, ha a fájlméretnövelést kis lépésekben végzi.
  • Az SQL Server 2005 rendszerben és az SQL Server újabb kiadásaiban engedélyezhető a fájlok azonnali inicializálása, ám ezzel a megoldással csak az adatfájlokhoz kapcsolódó fájlterület-kiosztás gyorsítható, és a művelet nincs hatással a naplófájlokra.
  • Ha számos naplófájl mérete növekszik, nem kizárt, hogy túl sok virtuális naplófájl létezik. Ez teljesítményproblémákat okozhat az adatbázisok indítása, valamint az online műveletek, a replikáció, a tükrözés és az adatrögzítési mód váltása során. Bizonyos esetekben az adatmódosítási műveletek teljesítménye is csökkenhet.

Ajánlott eljárások

  • Felügyelt üzemi környezetben futó rendszer esetén az autogrow paramétert csak előre nem látott méretnövekedés esetén alkalmazandó lehetőségként szabad számításba venni. Az adatfájlok és a naplófájlok méretnövekedésének napi szinten történő kezelésére az autogrow paraméter nem alkalmas.
  • A fájlméretek figyeléséhez és a fájlok méretének előjelzéses növeléséhez figyelmeztetéseket és figyelőprogramokat lehet használni. Ezt a megoldást választva elkerülhető a töredezettség, és a kisebb rendszerterhelésű időpontokra lehet ütemezni a karbantartási tevékenységeket.
  • Az autoshrink és az autogrow paraméter használatának lehetőségeit egy szakképzett adatbázis-rendszergazdának körültekintően meg kell vizsgálnia. Felügyelet nélkül nem szabad alkalmazni ezt a két beállítást.
  • Az autogrow paraméter hatására elért méretnövekedést úgy kell megtervezni, hogy az elegendően nagy legyen az előző részben említett teljesítményproblémák elkerüléséhez. A rendszerkörnyezet több tényezője alapján el kell dönteni, hogy célravezetőbb-e pontos értéket megadni a konfigurációs beállítások között, vagy százalékban meghatározott méretnövekedést, illetve megabájtban megadott méretnövelést kell-e alkalmazni. A teszteléshez használható általános szabályként állítsa az autogrow beállítás értékét a fájl méretének nyolcadára.
  • Engedélyezze valamennyi fájlhoz a <MAXSIZE> beállítást is, mert így elkerülheti, hogy az egyes fájlok túl nagyra nőve felhasználják a rendelkezésre álló teljes lemezterületet.
  • A nem tervezett fájlméret-növekedés elkerülése érdekében a tranzakciók mérete a lehető legkisebb legyen.

Miért fontos kérdés a lemezterület, ha a méretbeállítások szabályozása automatikusan történik?

  • Az autogrow beállítás gondoskodik arról, hogy az adatbázis mérete ne haladhassa meg azon meghajtók szabad lemezterület-kapacitását, amelyekhez fájlokat definiáltak a rendszerben. Ha az autogrow paraméterrel méretezi az adatbázisokat, az előzőekben írtaktól függetlenül saját magának is ellenőriznie kell a rendelkezésre álló merevlemez-területet. Az autogrow beállítást az egyes fájlokhoz megadott MAXSIZE paraméter is korlátozza. Ha nem szeretné, hogy túl kevés legyen a szabad lemezterület, figyelheti az SQL Server: Databases Object: Data File(s) Size (KB) (SQL Server: Adatbázis-objektum: Adatfájl(ok) kilobájtban megadott mérete) teljesítményszámlálót, és rendszerértesítést kérhet arra az esetre, ha az adatbázis elér egy bizonyos méretet.
  • Az adatfájlok és a naplófájlok méretének nem tervezett növekedése más alkalmazások elől foglalja el a szabad lemezterületet, ez pedig problémákhoz vezethet azok működése során.
  • A tranzakciónapló fájlméretnövekményének elegendően nagynak kell lennie ahhoz, hogy a tranzakcióegységek lemezterület-igényét ki tudja elégíteni a rendszer. A tranzakciónapló telítődéséről még abban az esetben is értesítés jelenhet meg, ha engedélyezve van az autogrow beállítás, de a tranzakciónapló mérete nem tud elég gyorsan növekedni a lekérdezés igényeinek kielégítéséhez.
  • Az SQL Server nem teszteli állandó jelleggel, hogy vannak-e olyan adatbázisok, amelyek mérete meghaladja az autoshrink paraméterhez beállított küszöbértéket. Ehelyett az elérhető adatbázisok vizsgálatával állapítja meg, hogy melyik az első olyan adatbázis, amely automatikus zsugorításra van beállítva. Ellenőrzi ezt az adatbázist, és ha szükséges, zsugorítja azt, majd több perc várakozást követően ellenőrzi a következő olyan adatbázist, amely ugyancsak be van állítva az autoshrink paraméter használatára. Más szavakkal élve az SQL Server nem ellenőrzi egyszerre az összes adatbázist, és nem is zsugorítja azokat egyszerre. Ehelyett ciklikus időszeletelést alkalmazva dolgozza fel az adatbázisokat, és így osztja el egyenletesen a rendszerterhelést. Ennek következtében az egyes SQL Server-rendszerpéldányokon automatikus zsugorításra beállított adatbázisok számától függően a küszöbérték elérésétől számítva akár több órába is telhet egy-egy adatbázis zsugorítása.

Hivatkozások

Az adatbázisfájlok és a naplófájlok méretének növeléséről és zsugorításáról a Microsoft Tudásbázis alábbi cikkeiben tájékozódhat:
256650 Az SQL Server 7.0 rendszer tranzakciónaplójának zsugorítása (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
272318 Az SQL Server 2000 rendszer tranzakciónaplójának zsugorítása a DBCC SHRINKFILE utasítással (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
317375 Egy SQL Server rendszert futtató számítógépen váratlanul nő a tranzakciónapló mérete, vagy megtelik a napló (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
247751 Programhiba: Az adatbázis-karbantartási terv nem zsugorítja az adatbázist (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
305635 Az automatikus adatbázis-bővítés időtúllépést okoz (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
949523 Nagymérvű késés lép fel a tranzakcióalapú replikálás során, ha az SQL Server 2005 rendszer Initial Size és Autogrowth tulajdonságának értéke kicsi (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
Ha további információt szeretne az adatbázisfájlok inicializálásáról, látogassa meg a Microsoft Developer Network (MSDN) alábbi webhelyét:
Adatbázisfájlok inicializálása
A fájlok azonnali inicializálásáról a Microsoft következő webhelyén olvashat részletesen:
Útmutató és érvek a fájlok azonnali inicializálásához
Amennyiben a tranzakciónapló fizikai felépítéséről szeretne többet megtudni, keresse fel az alábbi MSDN-webhelyet:
A tranzakciónapló fizikai felépítése

Az SQL Server Books Online webhely Transaction Log Physical Architecture (A tranzakciónapló fizikai felépítése) és Shrinking the Transaction Log (A tranzakciónapló zsugorítása) című témaköre ugyancsak hasznos tudnivalókkal szolgál.

Tulajdonságok

Cikk azonosítója: 315512 - Utolsó ellenőrzés: 2011. szeptember 17. - Verziószám: 3.0
A cikkben található információ a következő(k)re vonatkozik:
  • 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
Kulcsszavak: 
kbsqlmanagementtools kbinfo KB315512
A Microsoft tudásbázisban szolgáltatott információkat "az adott állapotban", bárminemű szavatosság vagy garancia nélkül biztosítjuk. A Microsoft kizár mindennemű, akár kifejezett, akár vélelmezett szavatosságot vagy garanciát, ideértve a forgalomképességre és az adott célra való alkalmasságra vonatkozó szavatosságot is. A Microsoft Corporation és annak beszállítói semmilyen körülmények között nem felelősek semminemű kárért, így a közvetlen, a közvetett, az üzleti haszon elmaradásából származó vagy speciális károkért, illetve a kár következményeként felmerülő költségek megtérítéséért, még abban az esetben sem, ha a Microsoft Corporationt vagy beszállítóit az ilyen károk bekövetkeztének lehetőségére figyelmeztették. Egyes államok joga nem teszi lehetővé bizonyos károkért a felelősség kizárását vagy korlátozását, ezért a fenti korlátozások az ön esetében esetleg nem alkalmazhatók.

Visszajelzés küldése

 

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