Cum de a micșora baza acoperire de date tempdb în SQL Server

Traduceri articole Traduceri articole
ID articol: 307487 - View products that this article applies to.
Măriți totul | Reduceți totul

În această pagină

Rezumat

Acest articol discută despre diversele metode pe care le puteți utiliza pentru a micsora baza acoperire de date tempdb în Microsoft SQL Server. Înainte de a vă micșora baza acoperire de date tempdb utilizând metodele descrise în acest articol, vă rugăm să fie conștienți de următoarele:
  • Dimensiunea tempdb este resetat la dimensiunea configurat ultima (care este, dimensiunea implicită sau dimensiunea ultima, care a fost stabilit prin utilizarea alter bază acoperire de date) dupa fiecare restart. Prin urmare, dacă nu aveți pentru a folosi valori diferite sau de a obține imediat răgaz, nu trebuie să utilizați oricare dintre procedurile care sunt documentate în acest articol. Puteți să așteptați pentru următoarea repornire a serviciului de SQL Server pentru a reduce dimensiunea. Dimensiuni mai mari acoperire de date tempdb nu va afecta negativ performanța de SQL Server.
  • În SQL Server 2005 și versiunile ulterioare, în scădere acoperire de date tempdb nu este diferită în scădere o baza acoperire de date de utilizator cu excepția faptului că tempdb reinițializează la dimensiunea configurate dupa fiecare restart de instanță de SQL Server.
  • Este sigur pentru a rula psihiatru în tempdb, în marcă de timp ce tempdb activitate este în curs de desfășurare. Cu toate acestea, se pot întâlni alte erori precum blocarea, blocajelor și așa mai departe, care poate preveni psihiatru la finalizarea. Prin urmare, pentru a se asigura că un psihiatru de tempdb va reuși, vă recomandăm că face acest lucru în marcă de timp ce server este în mod utilizator unic sau atunci când te-ai oprit toate tempdb activitate de firmă.

Tempdb informații

Baza acoperire de date tempdb este un spațiu de lucru temporare. SQL Server utilizează tempdb pentru a efectua mai multe sarcini. Printre aceste sarcini sunt următoarele:
  • Stocare de explicit creat tabele temporare
  • Worktables care dețin rezultatele intermediare care sunt create în timpul interogării de procesare ?i sortare
  • Materializat statice cursoare
  • Stocare de versiunea înregistrări atunci când nivelurile de izolare instantaneu sau nivelurile de izolare comise de citit instantaneu sunt utilizate
SQL Server înregistrează numai informații suficiente în Jurnalul de tranzacții tempdb să se rostogolească înapoi o tranzacție, dar nu pentru a reface tranzacțiile în timpul de recuperare acoperire de date. Această caracteristică crește performanța de declarații INSERA în tempdb. În plus, nu trebuie să faceți log informații pentru a refaceți orice tranzacții pentru că tempdb este re-creat de fiecare dată că reporniți SQL Server. Prin urmare, a tranzacțiilor nu roll forward sau derula înapoi. Când începe SQL Server, tempdb este re-creat folosind o copie a bazei acoperire de date model și tempdb este resetat la dimensiunea configurat ultima. Dimensiunea configurat este dimensiunea explicita ultima, care a fost stabilit prin utilizarea o dimensiune de fișier schimbare de operare cum ar fi ALTER bază acoperire de date care utilizează opțiunea de Modifica fișierul sau declarație DBCC SHRINKFILE .

implicit, baza acoperire de date tempdb este configurat să autogrow după cum este necesar. Prin urmare, această bază acoperire de date poate neașteptat cresc în marcă de timp la o dimensiune mai mare decât dimensiunea dorită. Un simplu restart de SQL Server resetează mărimea tempdb la dimensiunea configurat ultima.

În SQL Server 2005 și versiunile ulterioare, puteți utiliza oricare dintre următoarele metode pentru a modifica dimensiunea tempdb.

Reduceți tabelulMăriți tabelul
MetodaImpune repornirea?Mai multe informații
MODIFICA BAZA acoperire de dateDaDă complet controlul asupra dimensiunea implicit fișierele tempdb (tempdev și templog).
DBCC SHRINKDATABASENuOpereaza la nivel de bază acoperire de date.
DBCC SHRINKFILENuVă permite să vă micșora fișiere individuale.
SQL Server Management StudioNuAceasta este de fapt un mod de a micsora fișierele bazei acoperire de date prin intermediul GUI.

Notă SQL Server Management Studio în SQL Server 2005 nu arată dimensiunea corectă a fișierele tempdb după o operație de psihiatru. Valoarea "În prezent alocate spațiului" este întotdeauna tras la sys.master_files DMV, și această valoare nu este actualizat după o opera?ie de mic?ora apare pentru baza acoperire de date tempdb. Pentru a găsi dimensiunea corectă a fișierele tempdb după o operație de psihiatru, executa următoarea instrucțiune SQL Server Management Studio:

use tempdb

select (size*8) as FileSizeKB from sys.database_files
Primele trei metode sunt discutate aici.

Notă Pentru instalările SQL Server 2000, trebuie să utilizați Query Analyzer în loc de SQL Server Management Studio. De asemenea, comenzile DBCC va necesita pentru a pune baza acoperire de date în mod utilizator unic.

Puteți utiliza următoarele trei metode pentru a micsora tempdb la o dimensiune care este mai mică decât dimensiunea configurat.

Metoda 1: Utilizați Transact-SQL comenzi

Metoda 2: Utilizați comanda DBCC SHRINKDATABASE

Metoda 3: Utilizați comanda DBCC SHRINKFILE

2501 și 8909 erori atunci când executați shrink operațiunile

Dacă este utilizat tempdb, și dacă tu try la spre crevet-l utilizând comanda DBCC SHRINKDATABASE sau DBCC SHRINKFILE , este posibil să primiți mesajele care seamănă cu următorul text, în funcție de versiunea de SQL Server pe care îl utilizați:

SQL Server 2005 și versiunile ulterioare

Server: Msg 8909, nivel 16, 1 de stat, linia 1 tabel eroare: obiect ID 0, indicele ID -1, partiția ID 0, Repartiz unitate ID 0 (tip necunoscut), filme ID (6:8040) conține un ID filme incorecte în antetul acestuia. PageId în antetul paginii = (0:0).

SQL Server 2000
Server: Nivelul de Msg 2501, 16, 1 de stat, linia 1 ar putea nu găsi tabel denumit "1525580473". Verifica sysobjects.

Server: Msg 8909, nivel 16, 1 de stat, linia 0 masă corupt: 1 de ID obiect, indicele ID 0, pagina ID % S_PGID. PageId în antetul paginii = % S_PGID.



Note
  • Aceste erori nu indică orice corupție reale în tempdb. Cu toate acestea, să fie conștienți de faptul că ar putea exista alte motive pentru erori de corupție date fizice ca eroare 8909 și că aceste motive includ probleme de subsistem I/O. Prin urmare, dacă eroarea se întâmplă în afara shrink operațiunile, ar trebui să faci mai multe anchete.
  • În SQL Server 2005 și versiunile ulterioare, deși un 8909 mesajul este returnat la aplicarea sau a utilizatorului care se execută operațiunea de contracție, shrink operațiunile nu va eșua.
  • În SQL Server 2000 și versiunile anterioare, aceste erori va provoca shrink operațiunile de a eșua. Prin urmare, pentru a micsora baza acoperire de date tempdb, va trebui să reporniți SQL Server pentru a re-crea tempdb. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
    277848 Mesaj de eroare "Masă corupt obiect ID 0, indicele ID 0, filme ID" apare atunci când executați DBCC DBREINDEX în SQL Server


Referințe

Micsora o bază acoperire de date

Proprietă?i

ID articol: 307487 - Ultima examinare: 30 aprilie 2014 - Revizie: 3.1
Se aplică la:
  • 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 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 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 Parallel Data Warehouse
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
Cuvinte cheie: 
kbsqlsetup kbhowtomaster kbmt KB307487 KbMtro
Traducere automată
IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată ?i poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate ?i articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cuno?tin?e în mai multe limbi. Articolele traduse automat ?i post-editate pot con?ine gre?eli de vocabular, sintaxă ?i/sau gramatică. Microsoft nu este responsabil de inexactită?ile, erorile sau daunele cauzate de traducerea gre?ită a con?inutului sau de utilizarea acestuia de către clien?i. Găsi?i mai multe informa?ii despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 307487

Trimite?i feedback

 

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