tempdb

Objavljeno: 23-04-2014 | Autor: Milen Blagojević | Kategorija: Administracija, Saveti

0

Tempdb je sistemska baza dostupna svim korisnicima konektovanim na SQL Server i u njoj se čuva sledeće:

  • Privremeni objekti koji su eksplicitno kreirani, kao što su globalne i lokalne privremene tabele, privremene procedure, tejbl varijable ili kursori.
  • Interni objekti koji su kreirani od strane SQL Servera kao što su privremene tabele kreirane za čuvanje rezultata prilikom sortiranja ili join-ovanja.
  • Verzije redova iz tabela koje se generišu transakcijama u bazama koje koriste read-commited row versioning isolation ili snapshot isolation.
  • Verzije redova iz tabela koje se generišu transakcijama za: online indeks operacije, Multiple Active Result Sets (MARS) i AFTER trigere.

Operacije koje se izvršavaju u tempdb su minimalno logovane. Ovo omogućava da transakcije mogu biti rollback-ovane. Tempdb je baza koja se rekreira svakog puta kada se SQL Server startuje tako da sistem uvek kreće sa potpuno praznom tempdb bazom. Privremene tabele i procedure se automatski brišu prilikom diskonektovanja korisnika. Zbog toga ne postoje nikakvi objekti koji mogu biti sačuvani iz jedne sesije u drugu. Backup i restore operacije nisu dozvoljene nad tempdb.

Ovo su inicijalne vrednosti za tempdb fajove sa podacima i logom (ove vrednosti variraju u zavisnosti od verzije SQL Servera):

Fajl Logičko ime Fizičko ime Rast fajla
Podaci tempdev tempdb.mdf Automatski rast po 10% dok disk nije pun
Log templog templog.ldf Automatski rast po 10% do maksimuma od 2 TB

Veličina tempdb može uveliko uticati na performanse sistema. Na primer, ako je veličina tempdb premala, sistem može biti previše opterećen sa automatskim rastom umesto da izvršava zadatke. Ovo se može izbeći povećanjem veličine tempdb. Takođe, ukoliko je tempdb prevelika može ugroziti druge sisteme koji koriste isti disk, pa je preporuka uvek izdvajati tempdb na poseban disk na kome nije ni jedna druga korisnička baza, niti sistemski fajlovi.

Osnovno o privremenim tabelama i tejbl varijablama

Objavljeno: 21-02-2014 | Autor: Milen Blagojević | Kategorija: Saveti

0

Od trenutka kada su uvedene privremene tabele i tejbl varijable u SQL Server vodi se rasprava kada je potrebno koristiti jedne a kada druge, a da bi znali odgovor na ovo pitanje potrebno je poznavati osnovne razlike između njih.
Privremene tabele su u stvari obične tabele koje se definišu i čuvaju u tempdb (sem što privremene tabele ne mogu imati FK i ne mogu se particionisati) i traju onoliko koliko traje sesija u kojoj su kreirane. Privremene tabele mogu biti:

  • Lokalne – kreiraju se sa prefiksom # i vidljive su samo unutar sesije u kojoj se izvršavaju
  • Globalne – kreiraju se sa prefiksom ## i vidljive su iz svih ostalih sesija

Sintaksa za kreiranje privremenih tabela: