Momentálne ste offline a čaká sa, kým sa znova pripojíte na internet

Návod na zmenšenie tempdb databázy SQL Server

DÔLEŽITÉ: Tento článok je preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft a možno ho opraviť prostredníctvom technológie Community Translation Framework (CTF). Microsoft ponúka strojovo preložené články, články upravené komunitou aj články preložené prekladateľmi, aby zabezpečil prístup ku všetkým článkom databázy Knowledge Base vo viacerých jazykoch. Strojovo preložené články aj upravené články môžu obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky. Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené neprávnym prekladom obsahu alebo jeho použitím zo strany našich zákazníkov. Ďalšie informácie o technológii CTF nájdete na lokalite http://support.microsoft.com/gp/machine-translation-corrections/sk.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 307487
Súhrn
Tento článok popisuje rôzne spôsoby, ktoré môžete použiť na zmenšenie tempdb databázy servera Microsoft SQL Server. Skôr, než sa zmenší tempdb databáza pomocou metód popísaných v tomto článku, nezabudnite na nasledovné:
  • Veľkosť Tempdb sa nastaví na poslednú nakonfigurovanú veľkosť (t. j. Predvolená alebo posledná veľkosť nastavená pomocou Vlastnosti databázy) po každom reštarte. Preto, ak budete musieť použiť rôzne hodnoty alebo získať okamžité uvoľnenie, nemáte niektorý z postupov, ktoré sú uvedené v tomto článku. Môžete počkať na ďalší reštartovanie služby SQL Server zmenšiť veľkosť. Väčšie veľkosti databázy tempdb bude negatívne ovplyvniť výkon servera SQL Server.
  • SQL Server 2005 a novšie verzie, zmenšenie tempdb databáza sa nelíši zmenšenie databázu používateľov s tým rozdielom, že tempdb obnoví jeho nakonfigurovaný veľkosť po každom reštarte inštanciu programu SQL Server.
  • Je to spustené zmenšenie databázy tempdb tempdb činnosť prebieha. Však sa môžu vyskytnúť ďalšie chyby, ako napríklad blokovanie úplné zablokovanie a podobne, ktoré môžu zabrániť zmenšiť dokončenie. Preto s cieľom uistiť sa, že zmenšenie tempdb podarí, odporúčame vykonať tento server je v režime jedného používateľa alebo po zastavení všetkých aktivít tempdb.

Tempdb informácie

Databázy tempdb je dočasný pracovný priestor. SQL Server používa tempdb množstvo úloh. Medzi tieto úlohy sú nasledovné:
  • Uchovávanie výslovne vytvorené dočasné tabuľky
  • Pracovné stoly, ktoré majú stredne výsledky, ktoré sú vytvorené počas dotaz na spracovanie a zoradenie
  • Zhmotnil statické kurzorov
  • Ukladanie verzie záznamov pri snímku izolácia úrovní alebo čítanie našich snímok izolácia úrovne
SQL Server zaznamená len dostatok informácií v denník transakcií tempdb vrátiť transakciu, ale nie znova transakcie počas obnovy databázy. Táto súčasť zvyšuje výkon Vložiť vyhlásenia v tempdb. Okrem toho nemáte prihlásiť informácie znova všetky transakcie, pretože tempdb je znova vytvorí pri každom spustení servera SQL Server. Preto je žiadne transakcie vrátiť dopredu alebo vrátiť späť. Pri spustení servera SQL Server tempdb sa vytvoria znova pomocou kópiu databázy modelu a obnovením tempdb jeho posledný nakonfigurovaný veľkosť. Nakonfigurovaný veľkosť je posledný explicitné veľkosť nastavené pomocou veľkosťou súboru meniace operácie, ako Zmeniť DATABÁZU , ktorá používa možnosť Upraviť súbor alebo DBCC SHRINKFILE alebo DBCC SHRINKDATABASE vyhlásenia.

V predvolenom nastavení databázy tempdb je nakonfigurovaný na autogrow, podľa potreby. Preto táto databáza môže neočakávane zväčšovať v čase veľkosť prekračuje požadovanú veľkosť. Jednoduché reštart servera SQL Server obnoví veľkosť tempdb jeho posledný nakonfigurovaný veľkosť.

SQL Server 2005 a novšie verzie, môžete použiť ľubovoľný z nasledujúcich postupov zmeniť veľkosť tempdb.

MetódaVyžaduje sa reštartovanie?Ďalšie informácie
ALTER DATABASEÁnoPoskytuje úplnú kontrolu veľkosti tempdb súbory predvolené (tempdev a templog).
DBCC SHRINKDATABASENiePracuje na úrovni databázy.
DBCC SHRINKFILENieUmožňuje zmenšiť jednotlivé súbory.
SQL Server Management StudioNieTo je v podstate spôsob zmenšovaní databázových súborov pomocou GUI.

Poznámka: SQL Server Management Studio SQL Server 2005 nezobrazuje správnu veľkosť tempdb súbory po operácia zmenšovania. "V súčasnosti pridelené miesto" hodnota je vždy odtiahnutý z sys.master_files DMV a táto hodnota sa neaktualizuje po operácia zmenšovania vyskytuje databázy tempdb. Nájsť správnu veľkosť tempdb súbory po operácia zmenšovania, SQL Server Management Studio vykonať nasledujúci príkaz:

use tempdbgoselect (size*8) as FileSizeKB from sys.database_files
Prvé tri postupy sú popísané tu.

Poznámka: SQL Server 2000 inštalácie, budete musieť použiť analyzátor dotazu namiesto SQL Server Management Studio. Aj príkazu DBCC bude vyžadovať, aby databázy v režime jedného používateľa.

Môžete použiť nasledujúce tri postupy na zmenšenie tempdb veľkosť, ktorá je menšia ako jeho nakonfigurovaný veľkosť.

Metóda 1: Použitie Transact-SQL príkazy
Poznámka: Táto metóda vyžaduje reštartovanie služby SQL Server.
  1. Zastavenie servera SQL Server.
  2. Do príkazového riadka spustiť v režime minimálnu konfiguráciu inštanciu. Ak to chcete urobiť, postupujte nasledovne:
    1. V príkazovom riadku zmeňte v nasledujúcom priečinku:
    2. Ak napríklad pomenovanú inštanciu programu SQL Server, spustite nasledujúci príkaz:
      sqlservr.exe -s InstanceName - c -f
      Ak napríklad predvolenú inštanciu programu SQL Server, spustite nasledujúci príkaz:
      sqlservr - c -f
      Poznámka:
      -C a -f parametre spôsobiť SQL Server spustiť v režime minimálnu konfiguráciu s tempdb veľkosť 1 MB súboru s údajmi a 0,5 MB pre súbor denníka.
  3. Pripojenie k serveru SQL Server pomocou analyzátor dotazu a potom spustite nasledovné príkazy Transact-SQL:
       ALTER DATABASE tempdb MODIFY FILE   (NAME = 'tempdev', SIZE = target_size_in_MB)    --Desired target size for the data file   ALTER DATABASE tempdb MODIFY FILE   (NAME = 'templog', SIZE = target_size_in_MB)   --Desired target size for the log file					
  4. Zastavenie servera SQL Server. Chcete urobiť, stlačením klávesov Ctrl + C v okne príkazového riadka reštartovať server SQL Server ako služba a potom skontrolujte veľkosť súborov Tempdb.mdf a Templog.ldf.
Obmedzenie tejto metódy je, že pracuje len na predvolené tempdb logické súborov, tempdev a templog. Ak sa ďalšie súbory pridané do tempdb, môžete zmenšiť ich po reštartovaní služby SQL Server. Pri spustení sa znova vytvoriť všetky tempdb súbory. Však prázdne a môžu byť odstránené. Odstrániť ďalšie súbory v tempdb, použitie príkazu Vlastnosti databázy možnosť Odstrániť súbor .

Metóda 2: Použitie príkazu SHRINKDATABASE
Použitie príkazu DBCC SHRINKDATABASE na zmenšenie tempdb databáza. DBCC SHRINKDATABASE dostane parameter target_percent. Toto je požadované percento voľný priestor vľavo v súbore databázy po databázy sa zmenšili. Ak používate DBCC SHRINKDATABASE, budete musieť reštartovať server SQL Server.
  1. Určenie miesta, ktoré sa v súčasnosti používajú vo tempdb pomocou sp_spaceused uložená procedúra. Potom vypočítať percento zostáva ako parameter DBCC SHRINKDATABASEvoľné miesto. Tento výpočet vychádza z požadovanej databázy veľkosť.

    Poznámka: V niektorých prípadoch budete musieť vykonať sp_spaceused @updateusage = true prepočítavať obsadenie priestoru a získania aktualizovanej správy. Odkaz SQL Server Books Online pre viac informácií o sp_spaceused uložená procedúra.

    Nasledujúci príklad:
    Predpokladajme, že tempdb má dva súbory: primárneho súboru údajov (Tempdb.mdf) 100 MB a súbor denníka (Tempdb.ldf), 30 MB. Predstavte si, že sp_spaceused správy, že primárneho súboru údajov obsahuje 60 MB údajov. Tiež Predpokladajme, že chcete zmenšiť primárneho súboru údajov do 80 MB. Výpočet požadované percento voľného miesta po zmenšení: 80 MB 60 MB = 20 MB. Teraz rozdeliť 20 MB 80 MB = 25%, a to je váštarget_percent. Súbor denníka transakcií sa scvrkl príslušne, 25% alebo 20 MB miesta zdarma po databázy sa zmenšili.
  2. Pripojenie k serveru SQL Server pomocou analyzátor dotazu a potom spustite nasledovné príkazy Transact-SQL:
       dbcc shrinkdatabase (tempdb, 'target percent')    -- This command shrinks the tempdb database					
Existujú obmedzenia pre použitie príkazu DBCC SHRINKDATABASE na tempdb databáza. Veľkosť cieľové súbory údajov a denníka nemôže byť menšia ako veľkosť, ktorá je zadaná pri databázy bol vytvorený alebo Posledná veľkosťou, boli explicitne nastavené pomocou operácie mení veľkosť súboru ako Zmeniť DATABÁZU , ktorá používa možnosť Upraviť súbor alebo príkaz. Ďalšie obmedzenie SKRYTÁ SHRINKDATABASE je výpočet target_percentage parameter a jeho závislosť na súčasný priestor používaný.

Metóda 3: Použitie príkazu DBCC SHRINKFILE
Použitie príkazu DBCC SHRINKFILE na zmenšenie tempdb jednotlivé súbory. DBCC SHRINKFILE poskytuje väčšiu flexibilitu ako DBCC SHRINKDATABASE , pretože môžete použiť na súbore jediného databázy bez ovplyvnenia iných súborov, ktoré patria do tej istej databázy. DBCC SHRINKFILE dostane cieľové veľkosť parameter. Toto je požadovaný konečný veľkosť súboru databázy.
  1. Určiť požadovanú veľkosť primárneho súboru údajov (tempdb.mdf), súbor denníka (templog.ldf) a ďalšie súbory, ktoré boli pridané do tempdb. Uistite sa, že priestor, ktorý používa súbory je menšia alebo rovná požadovaného cieľového veľkosti.
  2. Pripojenie k serveru SQL Server pomocou analyzátor dotazu a potom spustite nasledovné príkazy Transact-SQL pre špecifické databázové súbory, ktoré chcete zmenšiť:
       use tempdb   go   dbcc shrinkfile (tempdev, 'target size in MB')   go   -- this command shrinks the primary data file   dbcc shrinkfile (templog, 'target size in MB')   go   -- this command shrinks the log file, examine the last paragraph.						
Výhodou DBCC SHRINKFILE je, že môže znížiť veľkosť súboru na veľkosť menšiu ako pôvodnej veľkosti. Môžete vystaviť DBCC SHRINKFILE na ktorýkoľvek z údajov alebo log súborov. Obmedzenie DBCC SHRINKFILE je, že nemôžu vykonať databázy menšia ako veľkosť databázy modelu.

Použitie príkazu DBCC SHRINKFILE na zmenšenie tempdb jednotlivé súbory. DBCC SHRINKFILE poskytuje väčšiu flexibilitu ako DBCC SHRINKDATABASE , pretože môžete použiť na súbore jediného databázy bez ovplyvnenia iných súborov, ktoré patria do tej istej databázy. DBCC SHRINKFILE dostane cieľové veľkosť parameter. Toto je požadovaný konečný veľkosť súboru databázy.


2501 a 8909 chyby pri spustení operácie zmenšiť

Ak používa tempdb a pokúsite sa ho zmenšiť pomocou príkazu DBCC SHRINKDATABASE alebo DBCC SHRINKFILE , môže sa zobraziť podobné nasledujúce, v závislosti na verzii SQL Server, ktorý používate:

SQL Server 2005 a novšie verzie

Server: Msg 8909, úroveň 16, štát 1, linka 1 tabuľka chyba: Identifikácia objektu 0, register ID -1, oblasť ID 0, pridelenie do dátumu ID jednotky 0 (neznámy typ), identifikácia stránky (6:8040) obsahuje nesprávne stránky ID v stránku hlavička. PageId v hlavičke stránky = (0:0).

SQL Server 2000

Server: Msg 2501, úroveň 16, štát 1, riadok 1 nepodarilo nájsť tabuľky s názvom "1525580473". Skontrolujte, či sysobjects.
Server: Msg 8909, úroveň 16, štát 1, linka 0 tabuľka poškodený: 1 objekt ID, ID registra 0, strana ID % S_PGID. PageId v hlavičke stránky = % S_PGID.
Poznámky
  • Tieto chyby nenaznačujú žiadne skutočné poškodenie databázy tempdb. Nezabúdajte, že môžu existovať iné príčiny chyby poškodenie fyzického údajov, ako chyba 8909 a tie príčiny vstupno-výstupný podsystém problémy. Preto ak sa chyba vyskytne mimo zmenšiť operácie, by ste mali urobiť ďalšie šetrenie.
  • SQL Server 2005 a novšie verzie, napriek tomu, že aplikácia alebo používateľ, ktorý sa vykonáva operácia zmenšovania vráti hlásenie 8909 zmenšiť operácie nie zlyhá.
  • SQL Server 2000 a staršie verzie, tieto chyby zmenšiť spôsobí zlyhanie operácií. Preto na zmenšenie tempdb databázy, musíte reštartovať SQL Server na opätovné vytvorenie tempdb. Ďalšie informácie získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:
    277848 Chybové hlásenie "Tabuľky poškodený objekt ID 0, register ID 0, identifikácia stránky" sa vyskytuje, keď spustíte príkaz DBCC DBREINDEX SQL Server


Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 307487 – Posledná kontrola: 04/26/2016 03:24:00 – Revízia: 6.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL 2005 Server Workgroup, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Parallel Data Warehouse, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2016 Developer, Microsoft SQL Server 2016 Enterprise, Microsoft SQL Server 2016 Enterprise Core, Microsoft SQL Server 2016 Standard

  • kbsqlsetup kbhowtomaster kbmt KB307487 KbMtsk
Pripomienky