Professional Documents
Culture Documents
1. NOIUNI FUNDAMENTALE
DBMS_STATS
prin
care
se
colecteaz
statistici
referitoare
la
T_CLIENTI,
T_COMENZI_DESFACERE,
T_FURNIZORI,
T_PRODUSE,
T_COMENZI_APROVIZIONARE
MS_DBA/oracle).
(sunt
T_UNITATI,
n
schema
Nested Loop Outer Joins este utilizat n cazul jonciunilor externe iar principiul de lucru
este urmtorul: este aleas una dintre tabele pe post de pivot, iar nregistrrile celei de-a
doua tabele sunt parcurse ntr-un ciclu repetitiv n funcie de condiia de legtur. n
exemplul urmtor aplicarea acestui algortim duce la obinerea celui mai mare cost de
execuie:
SELECT /*+ USE_NL(c cd) */
c.ID_CLIENT,
c.NUME_CLIENT,
nvl(sum(cd.CANTITATE_COMANDATA),0) CANTITATE_TOTALA
FROM T_CLIENTI c,
T_comenzi_desfacere cd
WHERE c.ID_CLIENT = cd.ID_CLIENT(+)
group by c.ID_CLIENT,
c.NUME_CLIENT;
Dac ns introducem o condiie suplimentar de limitare a valorilor cmpului
ID_CLIENT vom obine o mbuntire a performanelor:
SELECT /*+ USE_NL(c cd) */
c.ID_CLIENT,
c.NUME_CLIENT,
8
Hash Join Outer Joins este aplicat n principal pentru volume mari de date astfel nct
metoda Hash fie eficient i nu exist posibilitatea utilizrii unei tabele pe post de pivot.
n exemplul urmtor se obine cel mai bun rezultat prin aplicarea acestui algrtim:
SELECT /*+ USE_HASH(c cd) */
c.ID_CLIENT,
c.NUME_CLIENT,
nvl(sum(cd.CANTITATE_COMANDATA),0) CANTITATE_TOTALA
FROM T_CLIENTI c,
T_comenzi_desfacere cd
WHERE c.ID_CLIENT = cd.ID_CLIENT(+)
group by c.ID_CLIENT,
c.NUME_CLIENT;
Sort Merge Outer Joins este aplicat cnd nu se poate alege o tabel pe post de pivot sau
condiiile impuse datelor duc la o cretere a costurilor obinute prin aplicarea algoritmului
Hash sau cnd deja nregistrrile sunt ordonate:
SELECT /*+ USE_MERGE(c cd) */
c.ID_CLIENT,
c.NUME_CLIENT,
nvl(sum(cd.CANTITATE_COMANDATA),0) CANTITATE_TOTALA
FROM T_CLIENTI c,
T_comenzi_desfacere cd
WHERE c.ID_CLIENT = cd.ID_CLIENT(+)
group by c.ID_CLIENT,
c.NUME_CLIENT;
9
Full Outer Joins Este utilizat ca o extensie a jonciunilor la dreapta i la stnga (left
joins i right joins). Se aplic dup ce se realizeaz o jonciune intern i se adaug toate
negistrrile neselectate din ambele tabele inclusiv valorile null.
10
11
12
13
14