Хранимая процедура или отчет на основе представления быстрее - PullRequest
1 голос
/ 31 июля 2011

Я хотел сделать отчет rdlc, который получит результат из 3-4 таблиц с использованием объединений на основе критериев входной даты. Я хотел бы знать, что лучше в качестве бэкэнда, представления или хранимой процедуры, чтобы получить результаты быстрее и повысить производительность, так как я ожидаю 10000-30000 записей в качестве результата. Моя база данных - SQL Server 2008. Пожалуйста, помогите!

Спасибо

Ответы [ 3 ]

1 голос
/ 31 июля 2011

Я не уверен, почему люди думают, что их выбор - это представление или хранимая процедура.

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

Ваш отчет должен вызывать хранимую процедуру - это модулирует код запроса и предоставляет центральное место для изменения кода. Относится ли эта хранимая процедура к представлению или нет - это другой вопрос.

1 голос
/ 31 июля 2011

Без подробностей, будет мало или нет разницы.

Если запрос может быть выражен в виде простого представления, то это то, как вы должны это сделать.

Что скорее всего повлияет на скорость запроса, так это имеющиеся у вас индексы.

0 голосов
/ 31 июля 2011

Представление добавляет еще один уровень абстракции к запросу и предварительно не оптимизируется.Поэтому, если бы вы просто запустили базовый запрос, вы бы получили более высокую производительность, чем с представлением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...