Разница между представлениями и таблицами в производительности

Что лучше для таблиц с большим количеством данных?

У меня есть хранимая процедура, которая создает отчет на основе некоторых фильтров. В моем SP я читаю таблицу и помещаю все внутренние объединения и формулы, затем в условие where я устанавливаю фильтры.

Говоря о производительности, что лучше?

Создать представление со всеми объединениями ИЛИ читать таблицу (как я делаю)?

2 ответа

Решение

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

Это зависит.

До тех пор, пока представление не содержит агрегатов (или конструкций, требующих материализации "заранее"), оно будет иметь точно такую ​​же производительность (и во многих случаях может проходить там, где критерии с коротким замыканием оптимизатором)

Вы пробовали бенчмаркинг в своих конкретных случаях?

@ Otávio Décio опередил меня, упомянув, что наличие "правильных" индексов окажет большее влияние на производительность.

Когда вы используете select count(*) from viewэто будет значительно медленнее, чем таблица. Поскольку таблица содержит номер строки в своем заголовке, представление не имеет такой информации.

Другие вопросы по тегам