Widoki indeksowane SQL Server

Widoki indeksowane SQL Server

Widok na SQL Server odnosi się do zapytania przechowywanego w katalogu bazy danych w przyszłości. Widoki SQL Server działają jako wirtualne tabele, które same nie przechowują rzeczywistych danych. Zamiast tego przechowują zestaw zapytań, które można wykonać w tabeli lub innych obiektach bazy danych.

Ten przewodnik dowie się, jak pracować wyświetlenia SQL Server i indeksowane widoki.

Widoki SQL Server: Podstawy

Zanim omówimy, jak pracować z indeksowanymi poglądami, poznamy podstaw tworzenia widoku.

Załóżmy, że masz instrukcję wybraną, która zwraca zestaw wyników. Na przykład:

Użyj SalesDB;
Wybierz 10 * ze sprzedaży, gdzie ilość = 1000;

Przykładowe zapytanie powyżej zwraca rekordy, gdzie ilość jest równa 1000. Jeśli chcemy użyć tego samego zapytania i uzyskać podobny zestaw wyników, możemy zapisać je w .plik SQL i ponownie je uruchom w razie potrzeby.

Lepszym sposobem na to jest stworzenie widoku trzymającego powyższe zapytanie. Na przykład możemy utworzyć widok o nazwie powyżej tysiąca, jak pokazano w zapytaniu pokazanym poniżej:

Użyj SalesDB;
IŚĆ
Utwórz widok tysiące tysiąc jako wybór * ze sprzedaży, gdzie ilość> 1000;

Gdy będziemy mieć zapytanie jako widok, możemy je ponownie wykorzystać jako:


IŚĆ
Wybierz * z tysiące tysiąc;

Zapytanie powinno zwrócić zestaw wyników jako:

W SQL Server Management Studio możesz wyświetlić przechowywane widoki w tabeli, nawigując do:

Bazy danych -> Twoja docelowa baza danych -> Tabele -> Widoki

Istnieją różne powody korzystania z widoków na SQL Server. Jednak główne obejmują bezpieczeństwo i spójność.

Aby usunąć widok z tabeli, możesz użyć zapytania o usunięcie widoku, jak pokazano:

Upuść widok, jeśli istnieje top_ tysiące;

Widoki indeksowane SQL Server

Jak wspomniano, normalny widok SQL Server nie zawiera danych samodzielnie. Posiada zestaw zapytań, które wytwarzają określony zestaw wyników. Pomaga to zapewnić bezpieczeństwo i spójność. Jednak widok nie zapewnia żadnej poprawy wydajności w zestawie wyników.

W tym miejscu wchodzą indeksowane widoki.

Widoki indeksowane są jak normalna tabela bazy danych, ponieważ mogą przechowywać dane fizyczne. Może to być świetne narzędzie, które może pomóc w zwiększeniu wydajności zapytania.

Omówmy tworzenie pracy z indeksowanymi widokami na SQL Server.

Jak utworzyć indeksowany widok?

Podczas tworzenia indeksowanego widoku na serwerze SQL są dwa kluczowe kroki:

  1. Utwórz widok z parametrem wiązania schematu.
  2. Następnie utwórz indeks klastrowy w widoku, aby go zmaterializować.

Weźmy przykład, aby zrozumieć, jak korzystać z indeksowanego widoku.

Rozważ poniższe pytanie przykładowe, które utworzyło indeksowany widok w tabeli sprzedaży.

Utwórz Widok Sales_Indexed z schematingiem jako wybrana sprzedaż.Salesd, sprzedaż.ProductID, sprzedaż.Customerid z DBO.Sprzedaż, gdzie ilość> 1000;
IŚĆ

Zauważysz kilka rzeczy innych niż typowy pogląd. Po pierwsze, uwzględniamy opcję Schemabindig.

Ta opcja zapewnia, że ​​nie można zmienić struktury tabel w formacie, który wpływa na podstawowy zmaterializowany widok.

Po drugie, nazwa zawiera dwuczęściowy format. SQL Server wymaga zdefiniowania schematu.obiekt podczas tworzenia indeksowanego widoku (w tej samej bazie danych).

WSKAZÓWKA: Pamiętaj, że SQL Server będzie aktualizować Zastosuj zmiany wprowadzone do tabel podstawowych do widoku indeksowanego. Prowadzi to do pisania kosztów na stoliki odniesione.

Po utworzeniu widoku musimy utworzyć indeks klastrowy. Możemy utworzyć indeks jako:

Utwórz unikalne indeks klastrowy my_index na DBO.sales_indexed (salesId);

Powyższe zapytanie powinno utworzyć klasterowy indeks na widoku. W SSMS możesz wyświetlić indeks klastrowy jako:

Po uzyskaniu indeksu klastrowego możemy zapytać o dane jako:

Wybierz * Z DBO.sales_indexed;

SQL Server używa widoku Sales_Indexed zamiast zapytania o rzeczywiste tabele.

Wniosek

W tym artykule nauczyłeś się tworzyć i korzystać z indeksowanych widoków na SQL Server, umożliwiając utworzenie zmaterializowanego widoku.