В некоторых областях моего приложения мне нужны данные из нескольких таблиц в базе данных (у меня есть приложение, приложение имеет много атрибутов, каждый атрибут имеет несколько определений, и каждое определение имеет ценность). Мне нужны данные из всех этих таблиц для приложения. Должен ли я использовать представление (которое было бы довольно большим) или подзапросы для выбора записей? В случае подзапросов оптимизатор может работать эффективно? Мне также интересно, будет ли кэширование работать для подзапросов.Представления против встроенных подзапросов SQL Server 2005/2008
1
A
ответ
2
Представления обычно расширяются в подзапросы, если вы явно не помечены представлениями, которые сохраняются, отбрасывая на них кластерный индекс.
1
Это вопрос «Это зависит». Представление может помочь сделать код более удобным для обслуживания, но сложные предикаты выбора могут смутить оптимизатора.
Другой вариант - хранимая процедура, которая возвращает набор записей. Если вы повторно используете подзапрос несколько раз, вы можете получить некоторый пробег от разделения запроса, выбрав подзапрос во временную таблицу и объединив части на более позднем этапе.
Без более конкретного описания проблемы трудно дать реальный ответ.