Разница между представлениями и таблицами в производительности
Что лучше для таблиц с большим количеством данных?
У меня есть хранимая процедура, которая создает отчет на основе некоторых фильтров. В моем SP я читаю таблицу и помещаю все внутренние объединения и формулы, затем в условие where я устанавливаю фильтры.
Говоря о производительности, что лучше?
Создать представление со всеми объединениями ИЛИ читать таблицу (как я делаю)?
2 ответа
Производительность намного больше зависит от наличия соответствующих индексов, чем при использовании представления или прямого доступа к таблице, которые (кроме материализованных представлений) ведут себя точно так же.
Это зависит.
До тех пор, пока представление не содержит агрегатов (или конструкций, требующих материализации "заранее"), оно будет иметь точно такую же производительность (и во многих случаях может проходить там, где критерии с коротким замыканием оптимизатором)
Вы пробовали бенчмаркинг в своих конкретных случаях?
@ Otávio Décio опередил меня, упомянув, что наличие "правильных" индексов окажет большее влияние на производительность.
Когда вы используете select count(*) from view
это будет значительно медленнее, чем таблица. Поскольку таблица содержит номер строки в своем заголовке, представление не имеет такой информации.