Indeksene er i hovedsak kreves for effektiv håndheving av integritetsbegrensninger og effektiv behandling av spørringer og transaksjoner. Disse er laget på tabeller og visninger. For eksempel, indeksene som brukes i bøker som letter brukeren å raskt få tilgang til innholdet i en bok, på samme måte har vi indeksene på SQL.
Sammenligningstabel
Grunnlag for sammenligning | Clustered Index | Ikke-klynget indeks |
---|---|---|
grunn~~POS=TRUNC | Bestemmer lagringsordren til radene i en tabell som helhet. | Bestemmer lagringsorden for radene i et bord ved hjelp av separat fysisk struktur. |
Antall indekser tillatt per tabell | Bare en klyngeindeks | Flere ikke-klyngede indekser |
Datatilgang | Raskere | Langsommere i forhold til den klyngede indeksen |
Ekstra diskplass | Ikke nødvendig | Kreves å lagre indeksene separat |
Definisjon av Clustered indeks
Den klyngede indeksen brukes i utgangspunktet til å bestille radene i et bord. Et bord kan bare ha en gruppert indeks fordi radene i et bord kan sorteres i bare én rekkefølge, men det finnes måter å opprette en sammensatt klyngeindeks på . Kolonnene er inkludert i den klyngede indeksen, og den logiske eller indekserte rekkefølgen av nøkkelverdiene er den samme som den fysisk lagrede rekkefølgen til de tilsvarende radene. Når det ikke er noen klynget indeks for dataene, lagres den i en haug .
Rekordtilgangen i en haug er svært tidkrevende, hvor hver oppføring i et bord blir skannet for å få tilgang til de ønskede dataene. I tabellskanningen var det ingen måte å finne ut om det er flere kamper tilgjengelige eller ikke. Så, denne metoden var svært ineffektiv.
Når du bruker en klynget indeks, er dataadgangen raskere og systematisk der bordet er organisert i noen rekkefølge. Det er definert i bestillingsfeltet til tabellen. Søke nøkkelen er brukt angir sekvensiell ordning av filen eller tabellen. En klynget indeks opprettes automatisk når en primærnøkkel er definert for en tabell.
Definisjon av ikke-klynget indeks
Den ikke-klyngede indeksen lagrer dataene på ett sted og indekser på et annet sted, og indeksen vil ha pekere til lagringsplassen til dataene. Et bord kan ha flere ikke-klyngede indekser fordi indeksen i den ikke-klyngede indeksen er lagret på et annet sted. For eksempel kan en bok ha mer enn en indeks, en i begynnelsen som viser innholdet i en bokenhet klok og en annen indeks på slutten som viser indeksen av termer i alfabetisk rekkefølge.
Det er definert i tabellen som ikke bestiller. Den ikke-klyngede indeksen kan forbedre ytelsen til spørringer som bruker andre taster enn primærnøkler. En ikke-klynget indeks blir automatisk opprettet når en unik nøkkel er definert for en tabell.
Viktige forskjeller mellom klynget og ikke-klynget indeks
- Antall klyngede indekser som en tabell kan ha, er bare en. Mens et bord kan ha flere ikke-klyngede indekser.
- En klynget indeks er raskere enn ikke-klynget indeks fordi den ikke-klyngede indeksen må referere tilbake til basistabellen. Tvert imot er dette ikke tilfellet i den klyngede indeksen.
- I en ikke-klynget indeks lagres indeksen på et separat sted som krever ekstra lagringsplass. I kontrast lagrer klynget indeks databorddataene i samme fysiske rekkefølge som indeksens logiske rekkefølge, slik at det ikke krever ekstra lagringsplass.
Konklusjon
Den klyngede indeksen er en måte å lagre data i rader av et bord i en bestemt rekkefølge. Slik at når de ønskede dataene søkes, blir den eneste tilsvarende raden påvirket som inneholder dataene og er representert som utgang. På den annen side ligger den ikke-klyngede indeksen i en fysisk separat struktur som refererer til basisdataene når den søkes. En ikke-klynget struktur kan ha en annen sorteringsordning.