Pentru a fi eficienți în operațiile de tuning SQL, orice administrator de baze de date trebuie să înțeleagă modul în care o instrucțiune SQL este transformată de la codul sursă original într-o formă executabilă.

Stadiile principale de procesare SQL sunt următoarele:

  1. Parsarea codului sursă pentru a localiza eventualele erori de sintaxă și căutarea unei copii existentă a instrucțiunii SQL în shared pool
  2. Optimizarea SQL
  3. Generarea SQL Row Source
  4. Execuția SQL

cncpt250

1. Prima etapă a prelucarii SQL este parsarea.

Această etapă implică separarea declarației SQL într-o structură de date care pot fi prelucrata de către alte rutine.  Atunci când o aplicație emite o instrucțiune SQL, aplicația face un apel la baza de date pentru a pregăti declarația de execuție. In aceasta etapa sunt realizate urmatoarele verificari:

  • Sintaxa. O declarație care încalcă o regulă de sintaxa SQL eșuează verificarea.
  • Semantica. De exemplu dacă un obiect ori o coloana din instrucțiune exista.
  • Verifica dacă instrucțiunea exista în Shared Pool. Baza de date efectuează o verificare pentru a stabili dacă poate sări peste anumite etape de prelucrare a declarației.

Unele erori nu pot fi capturat de parsare. De exemplu, baza de date poate întâlni blocaje sau erori în conversie de date numai în timpul executării declarație.

2. Optimizarea interogării este procesul de a alege cele mai eficiente mijloace de a executa o instrucțiune SQL. Baza de date optimizează interogările bazându-se pe statisticile colectate. Instrumentul de optimizare folosește numărul de rânduri, dimensiunea setului de date, precum și alți factori pentru a genera posibile planuri de execuție, atribuindu-un cost numeric pentru fiecare plan.Baza de date utilizează planul cu cel mai mic cost.

Aceasta trebuie să efectueze cel puțin o dată un „hard parse” pentru fiecare declarație DML și efectuează optimizarea timpului acesteia . DDL nu este optimizat, excepția cazului în care include o componentă de DML, cum ar fi o subinterogare care necesită optimizare.

3. Generatorul row source, este un software care primește planul de execuție optim de către optimizator și produce un plan iterativ, numit planul de interogare, care este utilizabil de către restul bazei de date. Planul iterativ este un program binar care, atunci când este executat de către mașină virtuală SQL, produce un set de rezultate. Planul de interogare ia forma unei combinații de măsuri iar fiecare pas returnează un set de rând. Rândurile din acest set sunt fie utilizate de către pasul următor sau, în ultima etapă, sunt returnate către aplicația emitentă instrucțiunii SQL.

Row source este un rând returnat de un pas din planul de execuție împreună cu o structură de control, care poate procesa iterativ rândurile. Row source poate fi un tabel, o vizualizare sau rezultatul unui join ori a unei operații de group. Generatorul row source produce un arbore row source, care prezintă următoarele informații:

  • O ordonare a tabelelor referite de declarați
  • O metodă de acces pentru fiecare tabel menționat în declarația
  • O metodă de asociere pentru tabelele afectate de operațiuni join în declarație
  • Operații de date, cum ar fi filtrul, sortarea sau agregarea

4. În timpul execuției, motorul SQL execută fiecare row source din arborele produs de generatorul de row source.

1 comentariu

Lasă un răspuns

Completează mai jos detaliile cerute sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare /  Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare /  Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare /  Schimbă )

Conectare la %s

Enmotech Blog

Specialized in Oracle Cloud Database ( DBaaS )

Mathijs Bruggink

Tips Tricks and Blogs on Oracle

Oracle Romania

Simplify IT

Programat in Romania

Blogul industriei de software din Romania. Comunitate dezvoltatori

Dan Bârsan

The miracle is not that we do this work, but that we are happy to do it. I'm writing in Romanian and English

Romanian Oracle User Group

Focusing On Oracle Database Administration

Big Lazy SysAdmin

Adapt. Enjoy. Survive.

Talip Hakan Ozturk's ORACLE BLOG

The secret of success is at your fingertips!...

Pickleball spielen

002 - License to dink

Enmotech Blog

Specialized in Oracle Cloud Database ( DBaaS )

Mathijs Bruggink

Tips Tricks and Blogs on Oracle

Oracle Romania

Simplify IT

Programat in Romania

Blogul industriei de software din Romania. Comunitate dezvoltatori

Dan Bârsan

The miracle is not that we do this work, but that we are happy to do it. I'm writing in Romanian and English

Romanian Oracle User Group

Focusing On Oracle Database Administration

Big Lazy SysAdmin

Adapt. Enjoy. Survive.

Talip Hakan Ozturk's ORACLE BLOG

The secret of success is at your fingertips!...

Pickleball spielen

002 - License to dink

%d blogeri au apreciat: