Мне интересно, плохо ли это, или вообще это правильный подход.Производительность при запросе вида
Допустим, я создал представление, которое объединяет несколько атрибутов из нескольких таблиц.
Мой вопрос, что мне нужно сделать, я могу запросить этот вид, как если бы он был таблицей, не беспокоясь о производительности?
Все атрибуты в исходных таблицах проиндексированы, я обеспокоен тем, что в представлении результата будут сотни тысяч записей, которые я хочу немного сузить на основе ввода пользователем.
То, что я хотел бы избежать, имеет несколько версий кода, который генерирует этот вид, плавающий вокруг, с несколькими дополнительными условиями «где», чтобы облегчить фильтрацию ввода пользователя.
Например, предположим, что мой вид имеет этот заголовок VIEW(Name, Type, DateEntered)
, это может иметь 100 000+ строк (возможно, миллионов). Я хотел бы быть в состоянии сделать это представление в SQL Server, а затем в моем приложении писать querlies так:
SELECT Name, Type, DateEntered FROM MyView WHERE DateEntered BETWEEN @date1 and @date2;
В принципе, я денормализация моих данных для серии отчетов, которые должны быть и я хотел бы централизовать, откуда я извлекаю данные, возможно, я не рассматриваю эту проблему под прямым углом, поэтому я открыт для альтернативных способов атаковать это.
Открыть макрос, который расширяется. Так просто. Он не предварительно разбирается, не компилируется и не обрабатывается отдельно для основного содержащего запроса. – gbn
@gbn, спасибо, интересная проницательность. Тем не менее, я не вижу, чтобы представление выглядело хуже, чем тот же запрос, что и представление, расширяемое по всему приложению. –