У нас есть (большой) запрос SELECT
, выполнение которого может занять ~ 30 секунд. Мне говорят, что при размещении в представлении запуск занимает менее 5 секунд.
Я предполагаю, что SQL Server кэширует планы запросов для запросов, которые не изменяются, так почему здесь значительное улучшение производительности?
Просто чтобы прояснить, на самом деле это всего лишь случай принятия чего-то вроде:
select * from table /* Lots of joins, where clauses */
и сделаем вид:
create view myfirstview as select * from table /* Lots of joins, most of the where clauses */
select * from myfirstview where /* The rest of the where clauses (i.e. the ones that can change) */