Lucrul cu baza tempdb

Baza de date a sistemului TEMPDB participă la activitatea utilizatorilor conectați la toate bazele de date ale utilizatorilor serverului de baze de date.
TEMPDB este utilizat atunci când se lucrează cu tabele și proceduri temporare, creează obiecte interne (interne) și de utilizator (obiecte utilizator) ale rezultatelor interogării intermediare și așa mai departe.







Când serverul este pornit, TEMPDB este creat din nou, dacă TEMPDB nu poate fi creat din vreun motiv, serverul DBMS nu va porni. Implicit, dimensiunea acestei baze de date este nelimitată, iar creșterea este efectuată automat dacă este necesar, în porțiuni de 10% din dimensiunea actuală TEMPDB, însă acești parametri pot fi înlocuiți de utilizator. În mod implicit, dimensiunea minimă a acestei baze de date, care este setată la începutul Microsoft SQL Server, este determinată de dimensiunea bazei de date a sistemului MODEL. Jurnalul de tranzacții este șters automat în baza de date și sunt șterse numai intrările în jurnalul de tranzacții inactive.

Atunci când 1C: Enterprise 8 se execută în modul client-server, tabelele temporare sunt utilizate pe scară largă. În plus, TEMPDB este utilizat de Microsoft SQL Server atunci când efectuează interogări care utilizează GRUPUL, ORDERUL, UNIUNEA, SORT, DISTINCT și așa mai departe.

Cea mai comună problemă cu care se confruntă utilizatorii este creșterea semnificativă a mărimii bazei de date TEMPDB. Motivul pentru creșterea dimensiunii tempdb bazei de date, de regulă, este imposibilitatea de curățare automată a spațiului de tranzacții și reutilizarea în tempdb datorită prezenței tranzacțiilor active, folosind obiecte ale bazei de date.







Care pot fi soluțiile la această problemă:

  1. Reporniți MS SQL Server. În acest caz, dimensiunea bazei de date TEMPDB va fi setată implicit.
  2. Comprimați baza de date TEMPDB. Pentru aceasta, trebuie să executați următoarea comandă în Query Analyzer: DBCC SHRINKDATABASE (TEMPDB).
  3. Reduceți dimensiunea fișierelor individuale. Pentru aceasta, executați următoarele comenzi în Query Analyzer:

DBCC SHRINKFILE (Logicheskoe_Imya_Fayla_Dannyh, Zhelaemyy_Razmer_Fayla_Dannyh_V_Megabaytah)
merge
DBCC SHRINKFILE (Nume_fiscurs_File_Transacție_File,
Zhelaemyy_Razmer_Fayla_Zhurnala_Tranzaktsiy_V_Megabaytah)
merge

Reducerea dimensiunii fișierelor bazei de date TEMPDB la 50 megabytes:
UTILIZARE TempDB
DBCC SHRINKFILE (tempdev, 50)
merge
DBCC SHRINKFILE (templog, 50)
merge

Mutați baza de date TEMPDB pe un disc mai mare. Puteți modifica locația fișierelor bazei de date TEMPDB utilizând comanda ALTER DATABASE. Pentru a face acest lucru, trebuie să executați următoarea secvență de comenzi din Query Analyzer și să reporniți serverul de bază de date:

USE master
GO
ALTER DATABASE tempdb
MODIFICAȚI FILE (NAME = tempdev, FILENAME = 'New_Disk: \ New_Catalog \ tempdb.mdf')
GO
ALTER DATABASE tempdb
MODIFICAȚI FILE (NAME = templog, FILENAME = 'New_Disk: \ New_Catalog \ templog.ldf')
GO

Pentru a optimiza funcționarea bazei de date TEMPDB, este recomandat să o transferați pe un disc separat pe hard disk sau RAM și să împărțiți fișierul MDF în părți (de aceeași mărime) în funcție de numărul de procesoare (nuclee): dacă procesoarele <8, то количество файлов = количество процессоров; если процессоров> 8, apoi numărul de fișiere pentru a începe 8, apoi adăugați după cum este necesar.

Atunci când se utilizează tabele temporare, se utilizează cache-ul, dar acest lucru nu se aplică creării, sortare, grupare index etc.
De exemplu: a crea un tabel, construit un indice (care este rezonabil în ceea ce privește planul de construcție), acest tabel nu va fi salvată în memoria cache. Dar, în cazul în care masa este foarte mică și aproape sigur este SQL-server va fi scanat și a creat-o foarte des, este posibil să fi spălat funcționarea de a crea indicele inferior, în acest caz, prin cache tabel va fi creat în curând.







Articole similare

Trimiteți-le prietenilor: