SQL Server indekserte visninger

SQL Server indekserte visninger

En visning i SQL Server refererer til en spørring som er lagret i en databasekatalog for fremtidig referanse. SQL Server -visninger fungerer som virtuelle tabeller som ikke holder faktiske data av seg selv. I stedet lagrer de et sett med spørsmål som du kan utføre på en tabell eller andre databaseobjekter.

Denne guiden vil lære å jobbe SQL Server -visninger og indekserte visninger.

SQL Server -visninger: Det grunnleggende

Før vi diskuterer hvordan vi skal jobbe med indekserte visninger, la oss lære det grunnleggende om å lage et syn.

Anta at du har en valgt uttalelse som returnerer et resultatsett. For eksempel:

Bruk SalesDB;
Velg topp 10 * fra salg der mengde = 1000;

Eksemplet spørring ovenfor returnerer postene der mengden er lik 1000. Hvis vi vil bruke den samme spørringen og få et lignende resultatsett, kan vi lagre det i en .SQL-fil og kjør den på nytt når det er nødvendig.

En bedre måte å gjøre dette på er å lage en visning som holder spørringen ovenfor. For eksempel kan vi lage et visning som heter ovenfor_ tusen som vist i spørringen vist nedenfor:

Bruk SalesDB;

Lag vis topp_ tusenvis som velg * fra salg der mengde> 1000;

Når vi har spørringen som en visning, kan vi bruke det på nytt som:

..

Velg * fra TOP_TUMENDER;

Spørringen skal returnere resultatet satt som:

I SQL Server Management Studio kan du se de lagrede visningene i en tabell ved å navigere til:

Databaser -> Din måldatabase -> Tabeller -> Visninger

Det er forskjellige grunner til å bruke visninger i SQL Server. De viktigste inkluderer imidlertid sikkerhet og konsistens.

For å slette en visning fra en tabell, kan du bruke Delete View -spørringen som vist:

Slipp utsikten hvis det finnes topp_ tusenvis;

SQL Server indekserte visninger

Som nevnt har en normal SQL -servervisning ikke data av seg selv. Det har et sett med spørsmål som produserer et spesifikt resultatsett. Dette er med på å gi sikkerhet og konsistens. En visning gir imidlertid ingen ytelsesforbedring av resultatsettet.

Det er der indekserte visninger spiller inn.

Indekserte visninger er som en vanlig databasetabell fordi de kan lagre data fysisk. Dette kan være et flott verktøy som kan hjelpe deg med å forbedre ytelsen til en spørring.

La oss diskutere å lage arbeid med indekserte visninger i SQL Server.

Hvordan lage en indeksert visning?

Det er to viktige trinn når du oppretter en indeksert visning i SQL Server:

  1. Lag en visning med et skjemabindende parameter.
  2. Deretter lager du gruppert indeks på visningen for å materialisere den.

La oss ta et eksempel for å forstå hvordan vi bruker en indeksert visning.

Tenk på eksemplet nedenfor som opprettet et indeksert syn på salgstabellen.

Lag Vis Sales_indekset med skjemaer som valgt salg.Salesid, Sales.ProductID, salg.CustomerId fra DBO.Salg hvor mengde> 1000;

Du vil merke noen få ting som er forskjellige fra et typisk syn. Først inkluderer vi med Schemabindig -alternativet.

Dette alternativet sikrer at du ikke kan endre strukturen til tabellene i et format som påvirker den underliggende materialiserte visningen med mindre du slipper den eksisterende visningen.

For det andre inkluderer navngivningen et todelt format. SQL Server krever at du definerer skjemaet.objekt når du oppretter en indeksert visning (i samme database).

HINT: Husk at SQL Server vil oppdatere Bruk endringer i de underliggende tabellene til den indekserte visningen. Dette fører til å skrive overhead for de refererte tabellene.

Når visningen er opprettet, må vi opprette en gruppert indeks. Vi kan opprette en indeks som:

Lag unik gruppert indeks my_index på dbo.Sales_Indexed (SalesID);

Ovennevnte spørring skal opprette en gruppert indeks på visningen. På SSMS kan du se den grupperte indeksen som:

Når vi har den grupperte indeksen, kan vi spørre dataene som:

Velg * fra DBO.SALGE_INDEXED;

SQL Server bruker Sales_indExed View i stedet for å spørre om de faktiske tabellene.

Konklusjon

I denne artikkelen lærte du hvordan du oppretter og bruker indekserte visninger i SQL Server, slik at du kan lage en materialisert visning.