spațiile de tabelă temporare
Evaluare: 0/5
spațiu de tabelă temporară. spre deosebire de ceea ce s-ar putea presupune din numele său, există în baza de date tot timpul, la fel ca toate celelalte spații de tabelă. cum ar fi sistemul și Sysaux. Cu toate acestea, datele din spațiul de tabelă temporar este de natură temporară și există doar pe durata sesiunii de utilizator. Oracle utilizează spațiu tabelă temporar ca o zonă de lucru pentru realizarea sarcinilor, cum ar fi operație de sortare dacă utilizatorul solicită, și operațiunile de sortare la crearea indexuri. Oracle nu permite utilizatorilor să creeze obiecte într-un spațiu tabelă temporar.
Prin definiție, spațiu tabelă temporar stochează datele numai pe durata sesiunii de utilizator, iar datele nu pot fi partajate între toți utilizatorii. Performanța de spațiu tabelă temporar este extrem de important atunci când o aplicație utilizează interogări care necesită sortare intensivă și tocare, ceea ce implică stocarea datelor intermediare într-un spațiu tabelă temporar.
Sfat! , Oracle Database scrie toate datele program din zona locală (PGA), în porțiuni de 64 de biți, astfel încât ar trebui să creați un spațiu tabelă cu o dimensiune de măsură, multipli de 64 Kbytes. Pentru depozite mari de date și baze de date care susțin sistemele de luare a deciziilor, ceea ce face utilizarea pe scară largă a spațiului tabelă temporar este recomandată măsură dimensiunea de 1 MB.
Așa cum am menționat mai devreme, ar trebui să utilizați un design tempfile prin specificarea fișierelor incluse în orice spațiu tabelă temporar. Din punctul de vedere nu există nici o diferență între DATAFILE structura. care este indicat pentru spațiul de tabelă permanente, și tempfile de design. Prevăzute să TABLESPACE temporară. Cu toate acestea, Oracle distinge între aceste două tipuri de fișiere. Fișierele temporare conțin puțin sau deloc conțin Refaceți asociate cu acestea.
Crearea unui spațiu de tabelă temporar
Puteți crea un spațiu tabelă temporar în același mod ca și permanentă, dar cu diferența că specificați TEMPORAR în CREATETABLESPACE declarație de proiectare și inserturi acest design tempfile în schimb DATAFILE. Iată un exemplu:
Design SIZE în al doilea rând indică dimensiunea de date a fișierului și, în consecință, mărimea spațiului tabelă temporar - 500 MB. În declarația de proiectare AUTOEXTENDON va crește automat dimensiunea fișierului temporar, și, împreună cu ea - dimensiunea spațiului tabelă temporar. În mod implicit, toate spațiile de tabelă temporare sunt create cu dimensiuni uniforme extensii - 1 MB. Cu toate acestea, puteți specifica structura uniformității dimensiunilor pentru a specifica o altă dimensiune, așa cum se arată în următoarea declarație:
În declarație, MANAGEMENT EXTENT constructii neobyazatelna.Konstruktsiya SIZE specifică o UNIFORMĂ măsură specială dimensiunea de 16 MB în loc de 1 MB implicit.
Consiliul. Când selectați locul de spațiu tabelă temporar, utilizați un design tempfile loc DATAFILE.
Se obișnuiește să se creeze un spațiu temporar de masă (denumit în continuare, de regulă, Temp) pentru fiecare bază de date, dar este posibil să existe mai multe spații de tabelă temporare în spațiul de grup tabelă temporar, în cazul în care baza de date are nevoie pentru a efectua operațiuni intensive sortirovki.Chtoby pentru a distruge date spațiu tabelă temporar în mod implicit, trebuie să utilizați mai întâi comanda ALTER TABLESPACE pentru a crea un nou spațiu de tabelă, baza de date implicită. Anterior, atunci poate distruge un spațiu de tabelă implicit temporară ca oricare alta.
Sfat! Oracle recomandă instalarea tabelei temporare ca spațiu implicit controlat spațiu tabelă temporar la nivel local, cu standardizate de măsură, dimensiunea 1 MB.
Schimbarea tablespace timpului
Cu ALTER comanda TABLESPACE TEMPORAR, puteți efectua o varietate de sarcini de gestionare a spațiului de tabelă temporare, inclusiv adăugarea unui fișier temporar pentru ao mari. Aici este un exemplu de modul în care puteți mări spațiul de tabelă temporar:
În mod similar, se poate utiliza comanda ALTER TABLESPACE pentru a modifica dimensiunea fișierului temporar:
Pentru distrugerea fișierului temporar și a șterge fișierul sistem de operare corespunzător, utilizați următoarea declarație:
Când ștergeți fișierul temporar referitoare la spațiul de tabelă temporar, spațiul tabelă în sine rămâne în uz.
spațiu de tabelă temporară poate fi redus, ca orice spațiu tabelă normală. Următorul exemplu ilustrează utilizarea comenzilor pentru a reduce ALTERTABLESPACE tablespace temporar:
Reducerea de spații de tabelă temporare
Uneori poate fi necesar pentru a crește spațiul tabelă temporar pentru a se potrivi datelor este sarcina foarte mare, care utilizează intensiv acest spațiu tabelă temporar. După finalizarea lucrării, puteți reduce acest spațiu tabelă temporar folosind clauza SPACE SHRINK pe ALTER TABLESPACE. Iată un exemplu:
Structura SHRINK SPACE fișierele temporare pentru a reduce dimensiunea minimă a ceea ce este de aproximativ 1 MB. dimensiunea minimă pentru fișierele temporare pot fi setate folosind structura KEEP după cum se arată mai jos:
Oracle folosește o logică specială în compresia fișierelor temporare în spațiul tabelă temporar. Să presupunem că există un spațiu de tabelă temporară, care conține două fișiere de timp de 1 GB. Pentru a reduce spațiul de tabelă la 1 GB a emis următoarea comandă:
Dacă interoga V $ tempfile. veți vedea următoarele:
Baza de date va reduce unul dintre cele două fișiere temporare de până la 1 MB, iar celălalt - doar 1 MB, lăsând neatinsă 999 MB de spațiu. În cazul în care obiectivul dvs. - să taie unele fișier temporar la minimul specificat, puteți face acest lucru prin specificarea numele fișierului temporar pe care doriți să taie:
Operatorul de mai sus ALTER TABLESPACE reduce doar a spus fișier temporar la dimensiunea specificată în structura Keep. Fișierele temporare rămase din spațiul tabelă TEMP este încă intactă. KEEP de construcție în declarația de mai sus se asigură că un fișier temporar care a fost specificat, se va păstra 500 MB de spațiu. Următorul exemplu arată cum să taie un fișier temporar separat, fără a se specifica pentru a economisi spațiu:
Ca și în declarația anterioară, KEEP design-ul nu a fost specificat, baza de date a reduce fișierul temporar specificat la cea mai mică dimensiune posibilă, care este de aproximativ 1 MB.
TABLESPACE implicit temporară
Când creați o bază de date de utilizatori, trebuie să alocați fiecare un spațiu tabelă temporar în mod implicit, în care își vor îndeplini sarcinile de serviciu temporare cum ar fi sortarea. Dacă nu specificați în mod explicit în spațiul său de utilizator tabelă temporară este utilizată pentru aceste spațiu de tabelă în scopuri de sistem, care poate duce la un grad ridicat de fragmentare a spațiului de masă, în plus față este întreaga activitate de bază de date completă de frânare dannyh.Izbezhat astfel de situații nedorite pot crea un spațiu de tabelă temporar default (implicit) pentru baza de date atunci când a fost creat de TABELĂ dEFAULT de construcție TEMPORARE. Oracle va utiliza apoi acest spațiu tabelă temporar este implicit pentru toți utilizatorii care vor fi atribuite astfel nu în mod explicit. Crearea unui spațiu de tabelă temporar implicit va fi afișat în noul meu articol, care va fi discutat pentru a crea o nouă bază de date Oracle.
Vă rugăm să rețineți că, dacă nu creați tablespace implicit la crearea unei baze de date, făcând posibilă după aceea. Ai nevoie doar de a crea un spațiu de tabelă temporar, așa cum se arată în exemplul anterior, și să-l un spațiu tabelă temporar este implicit pentru întreaga bază de date, folosind operatorul cum ar fi următoarele:
Aflați numele curent momentul în care spațiul de tabelă implicit pentru baza de date prin executarea următoarea interogare:
Sfat! Structura nu poate fi utilizat pentru TABLESPACE AUTOALLOCATE temporară. În mod implicit, toate spațiile de tabelă temporare sunt create gestionate local extensii dimensiune uniformă. Dimensiunea implicită a măsurii este de 1 MB, ca și pentru toate celelalte tablespace, dar alte dimensiuni pot fi extensiile setate așa cum doriți pentru a crea un spațiu de tabelă temporar.
Grupuri Tablespace temporare
tranzacție mare poate duce uneori la un spațiu temporar preaplin. Problemele asociate cu trierea în vrac, care cuprinde în special un tabel cu mai multe secțiuni, au ca rezultat o sarcină considerabilă pe spațiile de tabelă temporare, din care pot suferi de performanță. În Oracle Database 10g a fost introdus conceptul de grup Tablespace temporare care permite utilizarea Tablespace temporare în sesiuni diferite.
Mai jos sunt listate câteva dintre principalele caracteristici ale grupului de timp tablespace.
- Grupa spațiu tabelă temporar ar trebui să fie de cel puțin un spațiu tabelă. Restricții privind numărul maxim de ele nu există.
- Dacă eliminați toți membrii grupului de spațiile de tabelă temporare, grupul va fi șters automat.
- Grupa Tablespace temporare au același namespace și spațiile de tabelă temporare care fac parte din grup.
- Numele spațiului tabelă temporar nu se poate potrivi cu numele de oricare dintre grupurile de spații de tabelă.
- În numirea unui spațiu de tabelă temporar, utilizatorul poate aplica numele grupului spațiile de tabelă temporare în loc de numele unui anumit spațiu tabelă. Numele grupului poate fi, de asemenea, utilizat prin atribuirea unui spațiu de tabelă temporar este implicit pentru întreaga bază de date.
Grupuri Avantaje Tablespaces temporare
Folosind un grup de Tablespace timp în loc de tablespace temporare unice de obicei oferă următoarele avantaje.
- Interogări SQL mult mai puțin probabil să ducă la un spațiu preaplin rezervat pentru sortare, deoarece acum solicita pot utiliza mai multe spații paralele tabelă temporare pentru sortare.
- Puteți specifica mai multe spații de tabelă temporare în mod implicit, la nivelul bazei de date.
- servere care rulează în paralel operațiuni paralele vor utiliza în mod eficient mai multe tabele temporare.
- Un utilizator poate folosi simultan mai multe Tablespace temporare în sesiuni diferite.
Crearea unui grup de spații de tabelă temporare
Când sunt atribuite la primul spațiu tabelă temporar în grup, creând astfel în mod automat un grup. Pentru a crea un spațiu de tabelă grup complet specifica doar clauza TABELĂ GROUP pe CREATE TABLESPACE, după cum se arată mai jos:
Instrucțiunea SQL de mai sus va crea un nou spațiu de tabelă temporar temp01 împreună cu un nou grup de spații de tabelă numit tmpgrp1. Oracle creează un nou grup de spații de tabelă pentru că aici vă creați un nou spațiu de tabelă temporar specificat-cheie de proiectare GROUP TABLESPACE.
De asemenea, este posibil să se creeze un grup de tablespace temporare specificând aceeași TABLESPACE GROUP echipa de proiectare ALTER TABLESPACE. așa cum se arată mai jos:
Declarația de mai sus va forța Oracle pentru a crea un grup nou numit tmpgrp1. deoarece anterior nu au existat Tablespace de grup cu acest nume.
Dacă specificați o pereche de ghilimele ( „“), în loc de un grup de spații de tabelă, prin prezenta să specificați în mod explicit Oracle nu include spațiul de tabelă temporar la grup. Iată un exemplu:
Afirmația de mai sus creează un spațiu de tabelă temporar numit temp02, care este un spațiu comun tabelă temporară nu face parte din nici un grup de spații de tabelă temporare.
În cazul în care a pus pe deplin de construcție TABLESPACE GROUP. va crea un spațiu normal de tabelă temporar, și care nu au legătură cu oricare dintre grupările:
Adăugarea la grupuri tablespace tablespace temporare
Așa cum se arată în secțiunea anterioară, folosind comanda ALTER TABLESPACE pentru a adăuga spațiu de tabelă temporar la grup. De asemenea, este posibil să se schimbe grupul căruia dat tablespace folosind ALTER TABLESPACE. De exemplu, puteți specifica faptul că spațiul tabelă aparține grupului temp02 tmpgrp2. rulând următoarea comandă:
În acest caz, baza de date va crea un grup nou numit tmpgrp2. în cazul în care acest grup nu a existat.
Setarea unui grup ca spațiul de tabelă implicit pentru baza de date
Puteți utiliza un grup de spațiu tabelă temporar ca un spațiu de tabelă temporar, baza de date implicită. Dacă executați și următoarea declarație, toți utilizatorii care nu au tablespace implicit temporară poate utiliza orice spațiu de tabelă din grupul tmpgrp1 ca un spațiu de tabelă temporar în mod implicit:
Cele de mai sus ALTER DATABASE atribuie toate spațiile de tabelă din grupa tmpgrp1 ca o spațiile de tabelă temporar implicit pentru întreaga bază de date.
Alocarea grupurilor de spațiu tabelă temporar atunci când creați sau utilizator schimbare
Când creați utilizatori noi, aveți posibilitatea să le atribuiți unui grup de spații de tabelă temporare în locul unui spațiu de tabelă temporar. Iată un exemplu:
Prin crearea unui utilizator, puteți aplica, de asemenea, operatorul ALTER USER. Pentru a modifica un grup de spații de tabelă, pe care le va folosi. Aici SQL operatorul, ceea ce-l face:
Pentru a gestiona grupurile temporare de spațiu de tabelă în baza de date, puteți utiliza noua vizualizare DATA_TABLESPACE_GROUPS dictionarul de date. Următorul este un exemplu de o simplă cerere în acest punct de vedere, care afișează numele tuturor grupurilor de spații de tabelă:
Pentru a găsi o potrivire între spațiile de tabelă și grupurile din care fac parte, de asemenea, este posibil să se utilizeze dba_users de reprezentare. Iată un exemplu: