Представления и встроенные подзапросы SQL Server 2005/2008

StackOverflow https://stackoverflow.com/questions/181949

  •  05-07-2019
  •  | 
  •  

Вопрос

В определенных областях моего приложения мне нужны данные из нескольких таблиц в базе данных (у меня есть приложение, у приложения много атрибутов, у каждого атрибута есть несколько определений, и у каждого определения есть значение). Мне нужны данные из всех этих таблиц для приложения. Должен ли я использовать представление (которое было бы довольно большим) или подзапросы для выбора записей? В случае подзапросов может ли оптимизатор работать эффективно? Мне также интересно, будет ли работать кэширование для подзапросов.

Это было полезно?

Решение

Представления, как правило, развертываются на месте в подзапросы, если вы явно не пометили представления как сохраненные путем добавления к ним кластерного индекса.

Другие советы

Это вопрос «Это зависит». Представление может помочь сделать код более понятным, но сложные предикаты выбора могут запутать оптимизатор.

Другой вариант - это хранимая процедура, которая возвращает набор записей. Если вы повторно используете подзапрос несколько раз, вы можете получить некоторое расстояние от разбиения запроса, выбора подзапроса во временную таблицу и объединения частей на более позднем этапе.

Без более конкретного описания проблемы трудно дать значимый ответ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top