Vi vil diskutere de forskjellige kategoriene av indekser i Microsoft SQL -serveren. Hovedtypene av indekser er: grupperte indekser, ikke-klyngede indekser, btree-indekser og unike indekser.
Typer indekser i Microsoft SQL Server
Gruppert indeks
En gruppert indeks definerer den faktiske fysiske ordningen av dataene i en tabell. Hver tabell i SQL-serveren kan bare ha en gruppert indeks, og indeksen må opprettes på en unik, ikke-null kolonne eller sett med kolonner. Siden en gruppert indeks bestemmer den fysiske utformingen av en tabell, brukes den ofte til tabeller som ofte blir søkt basert på deres primære nøkkel eller andre unike verdier.
La oss først lage en tabell og sette inn verdiene i den ved å bruke følgende SQL -kommandoer:
Sett inn kunder (customer_id, customer_name, customer_email, customer_phone)La oss se på et eksempel på en gruppert indeks. For å opprette en gruppert indeks på kolonnen "Customer_id", kan vi bruke følgende SQL -spørring:
Lage klynget indeks idx_customers_customer_name på kunder (customer_name);Dette oppretter en gruppert indeks på Customer_name -kolonnen der dataene i tabellen er fysisk bestilt basert på verdiene i Customer_name -kolonnen.
For å hente alle kundene hvis navn starter med bokstaven “A”, kan vi bruke følgende SQL -spørring:
PLUKKE UT *Produksjon:
customer_id customer_name customer_email customer_phoneIkke-klynget indeks
Det er en type indeks som ikke påvirker den fysiske rekkefølgen på dataene i en tabell. En ikke-klynget indeks produserer en uavhengig datastruktur som lagrer indeksnøkkelen og pekeren til den tilhørende dataraden i tabellen. Dette gjør at spørsmålene raskt kan finne de relevante dataradene basert på verdiene i indeksen. I motsetning til de grupperte indeksene, kan tabellene i SQL-serveren ha flere ikke-klyngede indekser, og indeksen kan opprettes på hvilken som helst kolonne eller sett med kolonner i tabellen.
Et eksempel på en ikke-klynget indeks er som følger:
Opprett ikke -lukket indeks IDX_CUSTOMER_EMAILDette oppretter en ikke-klynget indeks på kolonnen "Customer_email" der dataene i tabellen forblir fysisk uordnet, men indeksen lagrer en sortert kopi av dataene i "Customer_email" -kolonnen.
Å hente alle kunder hvis e -postadresse inkluderer “Gmail.com ”-domenet, vi kan bruke følgende SQL -spørring:
PLUKKE UT *Produksjon:
customer_id customer_name customer_email customer_phoneHer har ingen kunder en e -post som inneholder “Gmail.com ”-domenet, så utgangsfeltet er tomt.
Btree Index
En Btree -indeks er en måte å organisere dataene i en struktur som ligner et tre. Hver node i treet inneholder en rekke nøkkelverdier, og hver bladknute inneholder en peker til den tilsvarende dataraden. Btree -indekser brukes ofte i SQL -serveren fordi de gir mulighet for effektiv søking og sortering av store datamengder. De er spesielt nyttige for spørsmål som involverer rekkesøk eller sorteringsoperasjoner. For eksempel: lønn, telefonnumre osv.
Et eksempel på å lage en BTREE -indeks på kolonnen "Customer_phone" er som følger:
Opprett indeks IDX_CUSTOMER_PHONEDette oppretter en B-Tree-indeks på kolonnen “Customer_phone” der dataene i indeksen er lagret i en trelignende struktur, med hver node som inneholder en rekke verdier og pekere til de andre nodene.
Nå ønsker vi å hente alle kunder hvis telefonnummer starter med retningsnummeret til “555” ved å bruke følgende SQL -spørring:
PLUKKE UT *Produksjon:
customer_id customer_name customer_email customer_phoneUnik indeks
Det er en type indeks som sikrer at ingen to rader i en tabell har samme nøkkelverdi. Dette kan være nyttig for å håndheve dataintegriteten og forhindre duplikatpostene i en tabell.
Et eksempel på å lage en unik indeks på kolonnen "Customer_email" er som følger:
Opprett indeks IDX_CUSTOMER_EMAIL_NEWDette oppretter en unik indeks på kolonnen "Customer_email" der indeksen håndhever en begrensning som sikrer at ingen to rader i tabellen kan ha samme verdi i kolonnen "Customer_email".
Sett en ny kunde inn i bordet med “[email protected] ”e -post og hente den ved hjelp av følgende SQL -spørring:
Sett inn kunder (customer_id, customer_name, customer_email, customer_phone)Produksjon:
customer_id customer_name customer_email customer_phoneKonklusjon
Indekser spiller en viktig rolle i å optimalisere ytelsen til SQL Server -databasene. Å forstå de forskjellige typer indekser kan hjelpe databaseadministratorene med å velge den mest passende typen indeks for applikasjonene sine. Ved effektivt å lage og vedlikeholde indeksene, kan virksomheter sikre at databasene deres presterer effektivt, slik at de kan ta datadrevne beslutninger og gi en bedre service til kundene sine.