T-sql heap, indicele grupat și indicii non-cluster

Heap, indicele grupat și indicii non-cluster

Luați în considerare teoria indicilor.

• SQL Server stochează datele de pe paginile 8 kilobytes - 8,060 bytes

• pagini care aparțin unui obiect (de exemplu, un tabel) conectat la lista bidirecțională

• Primele 8 pagini ale „obiect“ este stocat în zone mixte. Datele sunt stocate numai în zonele standardizate.

• 8 pagini sunt grupate în „secțiuni“. zone mixte stoca date de diferite „obiecte“. zone unificate stoca date de „obiect“

• SQL Server utilizează pagina denumit - „Index alocare Harta» (Index alocare Map), sau pe scurt - IAM pentru o anumită pagină aparținând «obiect»

Heap - aceste date sunt stocate fără nici un fel special, care nu au indici, acces si cauta aceste date are loc secvențial în funcție de pagini de scanare și poate dura destul de mult timp, care afectează în mod negativ performanța.

Îngrămădească pentru depozitarea unor cantități mici de date.

Există două tipuri de indici: grupate și non-cluster.

Clustered magazine index din site-urile lor lista de rânduri de date reale.

index non-cluster este o structură de sprijin, care indică datele din tabelul

  • În SQL Server indici sunt organizate ca B-arbori. Fiecare pagină într-un index arbore echilibrat este numit nod index.

<>Top B-tree se numește nodul rădăcină. Nodurile de la nivelul inferior al indicelui numit finit. <>Toate nivelurile indicelui între nodurile rădăcină și finale sunt numite intermediare. <>Cele grupate nodurile de frunze de index conține paginile de date tabelei de bază. <>De rădăcină index și nodurile intermediare sunt linia de index. <>Fiecare rând index conține o cheie și un pointer fie pagina B-tree nivel intermediar, sau pe un rând de date în nivelul indicelui final. <>Paginile de pe fiecare nivel sunt conectate la sistemul de spisok.Na bidirecțional - indicele de cluster arata ca un B-copac, în cazul în care rândurile din tabel de date reale sunt stocate în ordine sortat în lista de noduri.

T-sql heap, indicele grupat și indicii non-cluster

T-sql heap, indicele grupat și indicii non-cluster

TE datele vor fi stocate după cum urmează:

T-sql heap, indicele grupat și indicii non-cluster

pentru că date de index grupate stocate în lista de noduri, acestea vor fi disponibile atunci când un anumit nod-listă este găsit, se va reduce numărul de operații de intrare-ieșire și de a îmbunătăți performanțele sistemului.

De asemenea, atunci când citirea datelor vin sortat de index. De exemplu, dacă știm că va fi întotdeauna necesară pentru a sorta datele într-o anumită ordine, utilizarea unui indice de cluster înseamnă că nu va fi nevoie pentru a sorta datele de eșantionare.

Dezavantajul este că accesul la masa este întotdeauna trece prin codul care duce la o sarcină suplimentară pe SQL Server. Accesul la datele începe cu nodul rădăcină și trece prin indexul până la nodul-listă va fi făcută care conține datele dorite. Când volume mari de date create de un nodurile multi-frunză, respectiv, numărul de niveluri de index necesare pentru a sprijini un astfel de număr mare de frunză-noduri - crește, și crește numărul de operații de intrare-ieșire pentru a trece de la nodul rădăcină la lista nod.

pentru că grupate magazine index datele reale, nu puteți crea mai mult de un indice de cluster pe masă.

indicele non-cluster conține tabelul de date reale în lista de noduri. noduri frunze conțin una din cele două tipuri de informații cu privire la localizarea rânduri de date.

În cazul în care un indice de cluster este creat în tabel, indicii non-cluster pe masa sunt stocate în lista lor de site-uri de identificare de rânduri (Row ID in prima diagrama). Rândul id puncte la rândul real, datele din tabel, de fapt, este - o valoare care include numărul de fișiere de date, numărul paginii și locația liniei pe pagină.

În cazul în care un indice de cluster este creat în tabel, indicii non-cluster conține lista de nod valoarea indicelui cluster-cheie pentru aceste date (a doua schemă). La atingerea nodul de index foaie non-cluster situat valoare-cheie grupate acolo utilizate pentru a căuta în index grupat lista nod corespunzător care conține șirul de date dorit.

Posibilitatea de a crea până la 249 de indici nonclustered pe masă.

T-sql heap, indicele grupat și indicii non-cluster

T-sql heap, indicele grupat și indicii non-cluster

T-sql heap, indicele grupat și indicii non-cluster


Ie stocare a datelor este după cum urmează:

T-sql heap, indicele grupat și indicii non-cluster

În același timp, - toate noroc!

Citiți despre indecși, puteți încă aici: