4 diferențe importante între tabelele heap și tabelele cluster în SQL Server

Următorul articol explică diferențele cheie dintre tabelele Heap și tabelele Clustered.

În timp ce lucrați cu mesele în SQL Server, utilizatorii se confruntă adesea cu dilema de a folosi tabele grupate sau tabele heap. Tabelele care nu au indici grupați sunt numite tabele Heap, iar cele care au indici grupați sunt numite tabele cluster. Un index Clustered reordonează practic modul în care înregistrările sunt stocate fizic într-un tabel. Paginile de date sunt conținute în nodurile frunze ale unui index grupat.

Diferențele dintre Heap Tables și Clustered Tables

Articolul discută aceste două tipuri de tabele într-un mod mai detaliat.

Tabele grupate și heap

Tabelele grupate oferă utilizatorilor mai multe beneficii decât tabelele heap, deoarece îi ajută pe utilizatori să utilizeze indici să găsească rânduri mai repede decât tabelele heap și să stocheze fizic datele/înregistrările prin reconstruirea indexului cluster.

Datele dvs. fizice pot deveni fragmentate dacă există mai multe activități INSERT, DELETE și UPDATE față de tabelele din datele dvs. Se știe că datele fragmentate se pot adăuga la spațiu irosit și nedorit, deoarece, dacă rulați o interogare, trebuie să citească mai multe pagini, deoarece acum există pagini mai parțial pline. Să aflăm modalități de a rezolva problema fragmentării datelor.

Diferența dintre Heap și Clustered Table

Problema de fragmentare poate fi rezolvată prin determinarea necesității de a avea sau nu un index grupat în tabel/ele dumneavoastră. La urma urmei, indexul grupat sau heap este cel care reglează stocarea fizică a tabelului. Orice tabel din baza de date poate avea un singur tip de index. Pentru a face o alegere, trebuie să înțelegem diferențele de bază dintre acestea două, care sunt după cum urmează.

  1. În heap, nu există o ordine în stocarea datelor, dar în Clustered, stocarea datelor are o ordine în funcție de cheia de index în cluster. 
  2. Paginile de date nu sunt legate în Heap, în timp ce în tabelul Clustered, sunt legate și există acces secvenţial mai rapid.
  3. Heap-ul are 0 valoare index_id și Clustered are 1 valoare index_id pentru vizualizarea catalogului sys.indexes
  4. Clustered Index preia datele mai repede decât tabelul heap, deoarece există cheia Clustered Index

Fragmentarea

Pe baza diferențelor dintre tabelele cluster și heap se poate rezolva problema fragmentării. Fragmentarea are loc din cauza utilizării activităților INSERT, DELETE și UPDATE. Cu toate acestea, dacă aveți Heap Table și există doar activitate INSERT, atunci fragmentarea nu va avea loc. Dacă utilizați cheia de index secvențial (Valoare de identitate) și aveți doar INSERȚII, atunci indexul dvs. grupat nu va fi fragmentat. Dar dacă utilizați o mulțime de INSERȚI sau DELETE, atunci tabelele vor deveni fragmentate.

Prin urmare, este recomandat să utilizați Clustered Index, deoarece depinde de cheia Index și consumă mai puțin spațiu. Înregistrările noi pot fi scrise în paginile deja existente în spațiul liber disponibil.

Pentru a determina utilizarea fie a tabelului heap, fie a tabelului în cluster, puteți încerca și să rulați DBCC SHOWCONTIG sau noul DMV, deoarece ambele comenzi vă pot oferi o perspectivă cu privire la problemele de fragmentare din tabelele dvs. În tabelul în cluster, fragmentarea poate fi rezolvată prin reorganizarea sau reconstruirea indexului dvs. în cluster.    

Investiția într-un SQL Server repara instrumentul este o necesitate pentru companiile care folosesc MS SQL Server baza de date pe serverele lor de producție. De fapt, se poate dovedi a fi o salvare în cazul unei prăbușiri a bazei de date.

Introducerea autorului:

Victor Simon este expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv repara mdb și produse software de recuperare sql. Pentru mai multe informații vizitați https://www.datanumen.com/

Un răspuns la „4 diferențe importante între tabelele heap și tabelele grupate în SQL ServerMatei 22:21

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *