Documente Academic
Documente Profesional
Documente Cultură
Nota: ________________
Chişinău, 2018
Cuprins
Indecșii......................................................................................................................3
Rolul Indecșilor........................................................................................................3
Indecsii CLUSTERED.........................................................................................5
Indecsi NONCLUSTERED.................................................................................5
Sintaxa pentru crearea Indecșilor..........................................................................6
Când nu se crează indecșii......................................................................................7
Concluzie:.................................................................................................................7
Bibliografie...............................................................................................................8
Chişinău, 2018
Indecșii
Indecșii sunt niste obiecte de tip schema care imbunatatesc timpul de cautare si access la
inregistrarile din baza de date. Indecsii sunt creati in mod explicit sau automat in anumite
conditii.
Modul in care indecsii sunt conceputi ii fac independent fizic si logic de baza de date ceea
ce se exprima prin faptul ca ei pot sa fie creati sau distrusi in orice moment fara a afecta structura
bazei de date sau asupra celorlalti indecsi.
De asemenea din partea de management transparent face parte si faptul ca daca o baza de
date este distrusa atunci si indecsii care au fost creati pentru ea sunt de asemenea distrusi.
Exista mai multe situatii care necesita crearea indecsilor in baza de date. Un index este
creat daca:
- o singura coloana contine o varietate foarte mare de valori si un numar mare de valori.
- tabela pe care se creaza indexul este foarte mare si cererile in mod frecvent nu extrag o
cantitate mare de date (2-4%)
Rolul Indecșilor
- Rolul indecșilor este de a permite găsirea rapidă și eficientă a datelor, fără a citi întreg
tabelul
- Actualizarea unei tabele ce conține indecși este mai lentă pentru că trebuie actualizați și
indecșii
- Indecșii trebuie creați doar pentru coloane pe care se vor face căutări frecvente.
Dezavantaje indecsi:
- Consuma spatiul discului .
Chişinău, 2018
Exista 2 tipuri de indecsi clustered si nonclustered (cei non-clustered asigura sortarea,
cei clustered sunt sortati automat, au avantajul ca cererile sunt executate mult mai rapid,
consuma mai putina memorie indecsi clustered si trebuie sa avem un singur index clustered daca
este definit deja unul trebuie sters acel index al tabelei pt.ca putem avea doar un singur index
clustered per tabela. Se va folosi optiunea DROP_EXISTING pt.stergerea index-ului clustered.)
Se pot afla intr-o tabela pana la 247 indecsi non-clustered. (dupa altii putem avea 249
nonclustered index per tabel.)
Ce campuri se indexeaza F.F.IMP:
– cheile primare
– cheile straine (FOREIGN KEYS dintr-o tabela)
– -cheile externe
– coloane accesate intr-o ordine de sortare
– coloane grupate impreuna in timpul agregarilor
Cand nu trebuie sa cream indecsi:
– Referinta dintr-un query
– Contine cateva valori UNIQUE. De exemplu un index al unei coloane cu 2 valori (male si
female), intoarce un procent mare de randuri.
– Campurile de tip text,ntext sau image nu pot fi indexate NEVER INDEX!!!
Exista 2 tipuri de indecsi CLUSTERED SI NONCLUSTERED
Indecsii CLUSTERED
– Reprezinta un index in care inregistrarile din campul respective sunt ordonate crescator! –
se poate realize un singur index cluster (deci o singura coloana va fi index clustered cu conditia
ca ea sa aiba coloanele ordonate crescator) O SINGURA TABELA POATE AVEA UN
SINGUR INDEX CLUSTER(pe o pagina ce contine date, datele vor fi stocate in ordinea
ascendenta)
– Verificati ca aveti spatiu de memorie necesar in BD cand create indecsi cluster
Indecsi NONCLUSTERED
– Este construit deasupra heap-ului ( ce contine o colectie de pagini) -> se vor folosi
identificatori pt.randuri in paginile indexate care vor conduce catre inregistrarile din paginile
respective
– Cand este construit deasupra unei tabele cu un index cluster, SQL Server foloseste o
cheie CLUSTER in paginile de indexare care vor ghida catre index-ul cluster
OBTINEREA INFORMATIILOR despre INDEX
Procedura stocata sp_helpindex (din SQL Server Enterprise Manager) obtine informatia index-
ului: nume index,tip index, optiuni pt.o tabela specifica
Chişinău, 2018
Use NorthWind
EXEC sp_helpindex Customers
Obtinerea informatiilor despre o tabela sp_help tablename
USE NorthWind
EXEC sp_help Customers
OPTIUNEA FILLFACTOR
-este aplicata doar cand este creat un index sau reconstruit
OPTIUNEA PAD_INDEX
Specifica procentul de completare al paginilor index non-leaf-level.
EXEMPLU FILLFACTOR
USE NorthWind
CREATE INDEX OrderID_ind
ON Orders(OrderID)
WITH PAD_INDEX, FILLFACTOR = 70
Exemplul de mai jos creeaza OrderID_ind index la campul OrderID in tabela Orders.
USE NorthWind
CREATE INDEX OrderID_ind
ON Orders(OrderID)
WITH PAD_INDEX, FILLFACTOR = 70
Trebuie sa mentinem indecsii pt. a asigura performanta optimal.
OBTINEREA INFORMATIILOR DESPRE INDECSI
Pentru a afla informatii despre indecsi se folosesc urmatoarele proceduri stocate sistem din
mssql:
Indecșii sunt creați în două feluri:
Automat: În momentul în care se creaza o cheie primara asupra tabelelor, in momentul în care se
creaza o restrictie ca inregistrarile din baza de date sa fie unice si in alte situatii asemanatoare.
Manual: Se pot defini indecsi manuali care nu trebuie sa contina o restrictie cum este cazul
indecsilor unici.
Aici se permit valori duplicate Creare de indecși unici – valorile duplicate nu sunt permise
Chişinău, 2018
Când nu se crează indecșii
Cînd tabela pe care se doreste adaugarea este mica.
- Cînd coloanele pe care se adauga indecsii nu sunt folosite frecvent pentru executarea de
extrageri de inregistrari
-Cînd cererile de tip select in general extract un numar mare de inregistrari (mai mare de 2-4%)
Concluzie:
Efectuînd această lucrare individuală pot sa deduc foarte multe lucruri și concluzii,dar cel
mai important consider că după finisarea ei apar deja unele deprinderi din domeniu, și aceasta
mi-a dat posibilitatea de a înțelege cu adevarăt importanța profesiei alese.
Cu ajutorul acestei lucrări individuale am putut înţelege mai bine ce este un indecs. Am
înţeles unde se folosesc indecșii și pentru ce se folosesc. Mi-au apărut unele idei pe viitor la care
mă gândeam înainte dar nu ştiam cum să le fac.
Lucarea Individuala reprezintă o parte componentă a procesului – educativ care este
importantă petru noi, deoarece anume în timpul lucrului individual ne aprofundăm cunostințele
acumulate pe parcursul orelor de SGBD.
Chişinău, 2018
Bibliografie
https://www.google.com/search?
biw=1366&bih=608&tbm=isch&sa=1&ei=o12tW8Uv0sfAAs_ekuAH&q=create+index+image+
sql&oq=create+index+image+sql&gs_l=img.3..35i39k1.17516.19312.0.19658.5.5.0.0.0.0.172.6
61.0j4.4.0....0...1c.1.64.img..1.4.658....0.aTycfsWDez8#imgrc=wj8yn9OOUIpypM:
http://elearning.usarb.md/blog/matveeva/files/2013/05/Indec%C5%9Fi-SQL.pdf
http://www.cig.ase.ro/prof/tamas/resurse/SGBD-ACCESS-RAPOARTE.pdf
Chişinău, 2018