Järgmises artiklis selgitatakse peamisi erinevusi kuhjatabelite ja rühmitabelite vahel.
Töötades tabelitega SQL Server, seisavad kasutajad sageli silmitsi dilemmaga, kas kasutada rühmitabeleid või kuhjatabeleid. Tabeleid, millel pole rühmitatud indekseid, nimetatakse kuhjatabeliteks ja neid, millel on rühmitatud indeksid, nimetatakse rühmitabeliteks. Klasterdatud indeks korraldab põhimõtteliselt ümber viisi, kuidas kirjeid füüsiliselt tabelis salvestatakse. Andmelehed sisalduvad rühmitatud indeksi lehtede sõlmedes.

Artiklis käsitletakse neid kahte tabelitüüpi üksikasjalikumalt.
Klasterdatud ja kuhjatabelid
Kobartabelid pakuvad kasutajatele rohkem eeliseid kui kuhjatabelid, kuna need aitavad kasutajatel indekseid kasutades leida ridu kiiremini kui kuhjatabelid ja salvestada andmeid/kirjeid rühmitatud indeksi uuesti ülesehitamise teel.
Teie füüsilised andmed võivad killuneda, kui teie andmete tabelites on rohkem tegevusi INSERT, DELETE ja UPDATE. On teada, et killustatud andmed võivad raisatud ja ebasoovitavat ruumi lisada, sest päringu käivitamisel peab see lugema veel mitu lehekülge, kuna nüüd on rohkem osaliselt täis lehti. Uurime välja viise, kuidas lahendada andmete killustatuse probleem.
Erinevus kuhja ja rühmitabeli vahel
Killustatuse probleemi saab lahendada, määrates kindlaks, kas tabelis/tabelites on rühmitatud indeks või mitte. Lõppude lõpuks reguleerib teie tabeli füüsilist salvestusruumi rühmitatud või hunniku indeks. Igal teie andmebaasi tabelil võib olla ainult ühte tüüpi indeks. Valiku tegemiseks peame mõistma nende kahe põhilisi erinevusi, mis on järgmised.
- Kuhjas ei ole andmete salvestamisel järjekorda, kuid rühmitatud puhul on andmete salvestamisel järjekord, mis sõltub rühmitatud indeksi võtmest.
- Kuhjas ei ole andmelehti lingitud, samas kui rühmitatud tabelis on need lingitud ja neile on kiirem järjestikune juurdepääs.
- Kuhjal on sys.indexes kataloogivaate jaoks 0 index_id väärtus ja rühmitusel 1 index_id väärtus
- Klasterdatud indeks hangib andmed kiiremini kui kuhjatabel, kuna on olemas rühmitatud indeksi võti
Killustatus
Klasterdatud ja kuhjatabelite erinevuste põhjal saab killustatuse probleemi lahendada. Killustumine toimub tegevuste INSERT, DELETE ja UPDATE kasutamise tõttu. Kui teil on aga kuhjatabel ja seal on ainult INSERT-tegevus, siis killustumist ei toimu. Kui kasutate järjestikust indeksivõtit (identiteediväärtust) ja teil on ainult INSERTS, siis teie rühmitatud indeks ei killustata. Kuid kui kasutate palju INSERTS või DELETES, siis tabelid killustuvad.
Seetõttu on soovitatav kasutada rühmitatud indeksit, kuna see sõltub indeksi võtmest ja võtab vähem ruumi. Uued kirjed saab kirjutada juba olemasolevatele lehtedele vabas ruumis.
Kuhja või rühmitabeli kasutamise määramiseks võite proovida käivitada ka DBCC SHOWCONTIG või uus DMV, kuna mõlemad käsud annavad teile ülevaate tabelite killustatuse probleemidest. Klastrite tabelis saab killustatuse lahendada rühmitatud indeksi ümberkorraldamise või uuesti ülesehitamise teel.
Investeerimine a SQL Server remont tööriist on MS-i kasutavatele ettevõtetele kohustuslik SQL Server andmebaasi oma tootmisserverites. Tegelikult võib see andmebaasi krahhi korral osutuda elupäästjaks.
Autori sissejuhatus:
Victor Simon on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas remont mdb ja SQL-i taastamise tarkvaratooted. Lisateabe saamiseks külastage https://www.datanumen.com/