Cunoaște Intuit, curs, probleme de optimizare

LUCRAREA cuvânt din COMMIT și ROLLBACK este cosmetic în natură și utilizat după cum se dorește.

Comandă COMMIT și ROLLBACK

În Oracle, nu există nici o comandă pentru a crea o nouă tranzacție (în opoziție cu standardul SQL), dar există două echipe complete: rezultatele de fixare se realizează în ultima tranzacție comenzile de LMD (COMMIT) și respingerea acestora (ROLLBACK). Conexiunea la baza de date duce automat la începutul unei noi tranzacții, și același lucru se întâmplă și cu privire la finalizarea lucrărilor la orice comanda COMMIT sau ROLLBACK. Astfel, toate operațiunile cu date (tabele, indecși, obiecte de interne LOB) rula vrând-nevrând întotdeauna în Oracle, ca parte a oricărei tranzacții, iar sesiunea de comunicare cu programul de baze de date arata ca o serie de tranzacții succesive. tranzacția este finalizată echipa afectează numai operațiunile de LMD, dar în unele cazuri, baza de date generează astfel de ei înșiși comanda. Astfel, fiecare comandă DDL completează implicit (ascuns) care emite COMMIT; sesiune de urgență sau ruperea excepției la nivelul programului este însoțită de eliberarea unei ROLLBACK implicite.

Uneori, plumb două norme metodologice privind utilizarea COMMIT:

  1. emite un COMMIT. cât mai curând posibil, și
  2. să nu emită un COMMIT înainte este necesar.

COMMIT operațiune este costisitoare pentru SGBD, și în special problema frecventă poate împiedica în mod semnificativ activitatea SGBD. În versiunea 10, posibilitatea unei implementări accelerate a COMMIT. Pentru această echipă, puteți specifica cuvinte cheie SERIILOR ( „grup comite“: un record de eliberare a COMMIT este înscris în tamponul jurnal în baza de date, dar nu produce transferul de intrări de jurnal în fișier), sau nowait (SGBD începe procesarea următoarea comandă de sesiune fără a aștepta finalizarea efectivă a lucrărilor COMMIT):

Un exemplu de un astfel de comportament poate fi observat, expulzând în SQL * Plus folosind fișierul scenariu următorul text:

Baze de date de tranzacție Aici diferența este realizat de repornire forțată: STARTUP FORCE.

Oricare dintre instrucțiuni sau nowait loturi în WRITE COMMIT comandă anulează garanția din baza de date obținerea modificărilor recente la baza de date în caz de eșec, indiferent de problema COMMIT programului de utilizator.

Implicit una COMMIT metodă minieră în prezența acestor exemple de realizare pot fi setate pentru întreaga bază de date (ALTER SYSTEM ...) și parametrii de bază de date pentru sesiuni individuale (ALTER SESSION ...):