Представление - это просто псевдоним для запроса.
Временная таблица материализует набор результатов.
Представления, являющиеся просто псевдонимами, не требуют времени для заполнения, но они могут быть менее производительными при выборе из.
Заполнение временных таблиц (и усилий) занимает некоторое время, но может быть более эффективным.
Обратите внимание, что оптимизатор SQL Server
может создавать временную таблицу во время выполнения из представления (которое вы увидите в статистике запросов и планируете как Worktable
в tempdb
), индексировать и заполнять его строками и даже добавить недостающие строки по требованию (эти операции называются Eager Spool
и Lazy Spool
)
Это делает перемотку представления намного более эффективной: вместо переоценки всего представления каждый раз, когда требуются его результаты, результаты сохраняются во временной таблице либо сразу (как в Eager Spool
), либо постепенно (как в Lazy Spool
).
SQL Server
, однако, может материализовать представления путем создания на них кластеризованных индексов, хотя не все представления могут быть проиндексированы (чтобы быть индексируемым, представление должно соответствовать определенным условиям, описанным здесь ).