Czy to robi różnicę, jeśli filtrujesz Widok wewnątrz lub na zewnątrz Widoku?
Na przykład, czy jest jakaś różnica między tymi dwoma zapytaniami?
SELECT Id
FROM MyTable
WHERE SomeColumn = 1
Lub
SELECT Id
FROM MyView
WHERE SomeColumn = 1
I MyView
jest zdefiniowany jako
SELECT Id, SomeColumn
FROM MyTable
Czy odpowiedź jest inna, jeśli tabela źródłowa znajduje się na serwerze połączonym?
Pytam, ponieważ muszę dwukrotnie wysłać zapytanie do dużej tabeli (wiersze 44 mil) z połączonego serwera i uzyskać agregację wyników. Chcę wiedzieć, czy powinienem utworzyć dwa widoki, aby uzyskać dostęp do danych, po jednym dla każdego zapytania, czy też mogę uciec od jednego widoku i WHERE
klauzuli.
UNION ALL
. O wiele łatwiej jest korzystać z widoku, niż trzeba przepisać zapytanie UNION, gdy tylko potrzebuję danych.