To zależy.
To całkowicie zależy od tego, co oglądasz za pomocą widoku. Ale najprawdopodobniej zmniejszając wysiłek i zwiększając wydajność. Gdy instrukcja SQL odwołuje się do widoku nieindeksowanego, analizator składni i optymalizator zapytań analizują źródło zarówno instrukcji SQL, jak i widoku, a następnie przekształcają je w pojedynczy plan wykonania. Nie ma jednego planu dla instrukcji SQL i oddzielnego planu dla widoku.
Widok nie jest skompilowany . Jest to wirtualny stół złożony z innych stołów. Kiedy go tworzysz, nie znajduje się gdzieś na twoim serwerze. Podstawowe zapytania, które składają się na widok, podlegają tym samym przyrostom wydajności lub dingom optymalizatora zapytań. Nigdy nie testowałem wydajności na widoku VS, który jest jego podstawowym zapytaniem, ale wyobrażam sobie, że wydajność może się nieznacznie różnić. Możesz uzyskać lepszą wydajność w widoku indeksowanym, jeśli dane są względnie statyczne. Może to być to, o czym myślisz w kategoriach „skompilowanych”.
Zalety widoków:
- Wyświetl dane bez przechowywania danych w obiekcie.
- Ogranicz widok tabeli, tj. możesz ukryć niektóre kolumny w tabelach.
- Dołącz do dwóch lub więcej tabel i pokaż je użytkownikowi jako jeden obiekt.
- Ogranicz dostęp do tabeli, aby nikt nie mógł wstawiać wierszy do tabeli.
Zobacz te przydatne linki:
- Wydajność instrukcji VIEW a SQL
- Czy widok jest szybszy niż proste zapytanie?
- Mysql VIEWS a zapytanie PHP
- Czy widoki MySql są dynamiczne i wydajne?
- Zmaterializowany widok a tabele:Jakie są zalety?
- Czy wysyła zapytanie w widoku wolniejszym niż bezpośrednie wykonywanie SQL?
- Obejście problemów z wydajnością widoków TEMPTABLE
Zobacz wzrost wydajności dzięki widokom indeksowanym w SQL Server