SQL Serveri sätetest ?autogrow? ja ?autoshrink?

Artiklite tõlked Artiklite tõlked
Artikli ID: 315512 - Vaadake tooteid, millega see artikkel seostub.
Laienda kõik | Ahenda kõik

KOKKUVÕTE

Sätete autogrow ja autoshrink vaikeväärtused töötavad paljudes SQL Serveri süsteemides teie jaoks ilma häälestamise vajaduseta. Kuid mõnes keskkonnas ei pea te neid sätteid sisse lülitama või peate parameetreid autogrow ja autoshrink reguleerima. Käesolevas artiklis esitatakse veidi taustteavet, mis aitab teil oma keskkonna jaoks sobivaid sätteid valida.

LISATEAVE

Allpool on toodud mõned küsimused, mida tuleks arvesse võtta, kui otsustate parameetreid autogrow ja autoshrink häälestada.

Kuidas sätteid konfigureerida?

  1. Sätete autogrow ja autoshrink konfigureerimiseks saab kasutada üht järgmistest:
    • avaldust ALTER DATABASE (Muuda andmebaasi) (pole saadaval SQL Server 7.0 puhul);
    • SQL Server Management Studiot või SQL Enterprise Manageri;
    • salvestatud protseduuri sp_dboption (SQL Server 2005 puhul taunitav).
    Märkus. Kui kasutate SQL Server 2005, kasutage SQL Enterprise Manageri asemel SQL Server Management Studiot. Lisateabe saamiseks nende sätete seadistamise kohta SQL Server 2005 korral külastage järgmisi Microsoft Developer Networki (MSDN) veebisaite:
    Kuidas: lisada andmebaasi andmeid või logifaile (SQL Server Management Studio)
    http://msdn.microsoft.com/et-ee/library/ms189253.aspx
    Andmebaasi atribuudid (failide leht)
    http://msdn.microsoft.com/et-ee/library/ms180254.aspx
    Suvandit autogrow saab konfigureerida ka andmebaasi loomise ajal.

    Hetkesätteid saab vaadata SQL Enterprise Manageri (SEM) andmebaasi atribuutide kaudu. Või võite käivitada järgmise Transact-SQL käsu:
    sp_helpdb [ [ @dbname= ] 'name' ]
  2. Pidage meeles, et autogrow sätted on faili kohta. Seetõttu peate seadistama need igas andmebaasis vähemalt kahes kohas (ühe primaarse andmefaili jaoks ja teise primaarse logifaili jaoks). Kui teil on mitu andme- ja/või logifaili, peate seadistama suvandid igale failile. Sõltuvalt keskkonnast võivad lõpuks igal andmebaasi failil olla erinevad sätted.

Millised on mõjud jõudlusele?

  • Kui käivitate tehingu, mis vajab olemasolevast rohkem logiruumi, ja te olete suvandi autogrow selle andmebaasi tehingulogi jaoks sisse lülitanud, siis sisaldab tehingu lõpuleviimiseks kuluv aeg ka aega, mis kulub tehingulogi suurendamisele konfigureeritud mahu võrra. Kui suurendamise inkrement on suur või on muid tegureid, mille tõttu see võtab kaua aega, võib tehingu avamiseks kasutatud päring nurjuda ajalõpu saavutamise tõttu. Sarnane probleem võib olla põhjustatud andmebaasi andmeosa automaatsest suurendamisest. Suvandi autogrow konfiguratsiooni muutmise kohta lugege SQL Serveri võrguraamatutest teemat ?ALTER DATABASE? (Andmebaasi muutmine).
  • Kui käivitate suure tehingu, mis nõuab logi suurendamist, siis peavad teised tehingulogisse kirjutamist vajavad tehingud samuti ootama, kuni suurendamise operatsioon on lõpule viidud.
  • Suvandite autogrow ja autoshrink kombineerimisega võite tekitada tarbetu ballasti. Veenduge, et suurendamise ja kahandamise operatsioone vallandavad läviväärtused ei põhjustaks mahu sagedast suurenemist ja kahanemist. Näiteks võite käivitada tehingu, mis põhjustab kehtestamise ajaks tehingulogi suurenemise 100 MB võrra. Mõne aja pärast käivitub suvand autoshrink ja kahandab tehingulogi 100 MB võrra. Seejärel käivitate sama tehingu ja see põhjustab jälle tehingulogi suurenemise 100 MB võrra. Selles näites tekitate tarbetu ballasti ja põhjustate potentsiaalselt logifaili killustumise, mis mõlemad võivad jõudlust negatiivselt mõjutada.
  • Andme- või logifailide mahu muutmisest põhjustatud füüsiline killustumine võib jõudlust tõsiselt mõjutada. See kehtib nii automaatsätete kasutamise kui ka failide sagedase käsitsi suurendamise ja kahandamise korral.
  • Kui suurendate oma andmebaasi väikeste inkrementidena või suurendate ja seejärel kahandate seda, võib tulemuseks olla ketta killustumine. Ketta killustumine võib mõnikord tekitada probleeme jõudlusega. Väikeste kasvuinkrementide kasutamine võib samuti süsteemi jõudlust vähendada.
  • SQL Server 2005 või hilisemate versioonide puhul saate lubada failide kohese lähtestamise. Failide kohene lähtestamine kiirendab failipaigutust vaid andmefailide puhul. Failide kohene lähtestamine ei rakendu logifailidele.
  • Kui teie logifailides on palju failide suurendamisi, võib teil olla liiga suur hulk virtuaalseid logifaile (VLF). See võib tekitada probleeme jõudlusega andmebaasi käivitus-/võrguoperatsioonide, tira?eerimise, peegelduse ning andmemuudatuste hõive (CDC) puhul. Lisaks võib see mõnikord tekitada jõudlusprobleeme andmete modifitseerimisel.

Parimad tavad

  • Hallatavas tootmissüsteemis peate lugema suvandit autogrow lihtsalt üheks kasutatavaks võimaluseks ootamatu suurendamise puhul. Ärge hallake oma andmete ja logide suurenemist igapäevaselt suvandiga autogrow.
  • Failide mahu jälgimiseks võite kasutada hoiatusi või jälgimisprogramme ning suurendada faile ennetavalt. See aitab vältida killustumist ja võimaldab nihutada need hooldustoimingud mittetipptundidele.
  • Kogenud andmebaasiadministraator (DBA) peab suvandeid AutoShrink ja autogrow hoolikalt hindama; neid ei tohi jätta haldamata.
  • Teie autogrow inkrement peab olema piisavalt suur, et vältida eelmises jaotises loetletud jõudlustrahve. Konfiguratsioonisätetes kasutatav täpne väärtus ning valik protsentuaalse suurenemise ja kindla MB mahuga suurenemise vahel sõltub paljudest teie keskkonna teguritest. Üldiseks rusikareegliks, mida võite kasutada, on seada sätte autogrow väärtuseks umbes üks kaheksandik faili mahust.
  • Lülitage iga faili puhul sisse säte <MAXSIZE>, et vältida ühegi faili suurenemist sellisel määral, et see kulutab ära kogu kasutatava kettaruumi.
  • Hoidke tehingute suurus nii väiksena kui võimalik, et vältida failide plaanimatut suurenemist.

Miks pean muretsema kettaruumi pärast, kui sätteid kontrollitakse automaatselt?

  • Säte autogrow ei saa suurendada andmebaasi mahtu üle kasutatavast kettaruumist tuleneva piirangu draividel, mille jaoks failid on määratletud. Seetõttu, kui toetute oma andmebaaside mahu reguleerimisel funktsioonile autogrow, peate siiski sõltumatult kasutatavat kõvakettaruumi kontrollima. Sätet autogrow piirab ka MAXSIZE parameeter, mille iga faili jaoks valite. Võimaliku ruumipuuduse vältimiseks võite jälgida jõudlusmonitori loendurit SQL Server: Databases Object :Data File(s) Size (KB) ja seadistada hoiatuse, mis teavitab teid, kui andmebaas saavutab teatud mahu.
  • Andme- või logifailide plaanimatu suurenemine võib kulutada ruumi, mis on vajalik teiste rakenduste töötamiseks, ning põhjustada probleeme teiste rakendustega.
  • Tehingulogi suurenemise inkrement peab olema piisavalt suur, et vastata teie tehinguüksuste vajadustele. Isegi kui suvand autogrow on sisse lülitatud, võite saada teate, et tehingulogi on täis, kui see ei saa päringu vajadustele vastamiseks piisavalt kiiresti suureneda.
  • SQL Server ei otsi pidevalt andmebaase, mis on jõudnud suvandi autoshrink konfigureeritud läviväärtuseni. Selle asemel vaatab see olemasolevaid andmebaase ja otsib üles esimese, mis on konfigureeritud automaatselt kahanema. See kontrollib andmebaasi ja kahandab seda vajaduse korral. Seejärel ootab see mitu minutit, enne kui kontrollib järgmist andmebaasi, mis on konfigureeritud suvandi autoshrink abil automaatselt kahanema. Teiste sõnadega, SQL Server ei kontrolli kõiki andmebaase korraga ega kahanda neid kõiki korraga. See töötab see andmebaasidega karusselli põhimõttel, et jaotada koormus teatud ajaperioodi peale. Seetõttu, sõltuvalt sellest, mitu andmebaasi olete konkreetse SQL Serveri eksemplari puhul konfigureerinud automaatselt kahanema, võib pärast andmebaasi jõudmist läviväärtuseni kuluda mitu tundi, enne kui seda tegelikult kahandatakse.

VIITED

Lisateabe saamiseks andmebaasi ja logifailide suurendamise ning kahandamise kohta klõpsake Microsofti teabebaasi artiklite kuvamiseks järgmistel artiklinumbritel:
256650 SQL Server 7.0 tehingulogi kahandamine
272318 SQL Server 2000 tehingulogi kahandamine suvandiga DBCC SHRINKFILE
317375 Tehingulogi suureneb ootamatult või täitub arvutis, kus töötab SQL Server
247751 PROGRAMMIVIGA: Andmebaasi hooldusplaan ei kahanda andmebaasi
305635 Andmebaasi automaatse laiendamise ajal jõuab kätte ajalõpp
949523 SQL Server 2005 puhul on tehingu tira?eerimise latentsusaeg suur, kui atribuudi ?Initial Size? (Algmaht) väärtus ja atribuudi Autogrowth (Automaatne suurendamine) väärtus on väikesed
Lisateabe saamiseks andmebaasifailide lähtestamise kohta külastage järgmist Microsoft Developer Networki (MSDN) veebisaiti:
Andmebaasifailide lähtestamine
Lisateabe saamiseks failide kohese lähtestamise lubamise kohta külastage järgmist Microsofti veebisaiti:
Kuidas ja millal lubada failide kohene lähtestamine
Lisateabe saamiseks tehingulogi füüsilise arhitektuuri kohta külastage järgmist MSDN-i veebisaiti:
Tehingulogi füüsiline arhitektuur

SQL Serveri võrguraamatud; teemad: ?Tehingulogi füüsiline arhitektuur?; ?Tehingulogi kahandamine?

Atribuudid

Artikli ID: 315512 - Viimati läbi vaadatud: 17. september 2011 - Redaktsioon: 3.0
KEHTIB JÄRGMISE LÕIGU KOHTA:
  • 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 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
Märksõnad: 
kbsqlserverengine kbinfo KB315512

Andke tagasisidet

 

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