Я провел небольшое исследование и могу заключить, что вам будет трудно поддерживать эффективные вложенные представления.Короче говоря, у вашего оптимизатора запросов SQL Server будет почти невозможное время, чтобы выяснить, как быстро выполнить ваш запрос.В лучшем случае он должен выполнить три оператора: исходный оператор, вид 1, вид 2 (вложенный).Без индексов для таблиц и представлений производительность будет постоянно снижаться из-за большого количества операций.
Было бы намного лучше, если бы вы искали альтернативное решение для вашего вложенного представления, например, реплицировали SELECT
утверждение с первого взгляда в вашем вложенном представлении.Дублирование также далеко не идеальное, но это означает, что вашему оптимизатору не придется работать так усердно.Вы также можете посмотреть применение индексов к вашим представлениям .Если все сделано правильно, вы улучшите производительность SELECT
, пожертвовав скоростью при выполнении операций INSERT
.Это следует делать, если вы не ожидаете, что ваша исходная таблица будет меняться слишком часто, но, вероятно, это лучшее решение, если вы не можете реструктурировать макет представления.