CREATE OR REPLACE FORCE VIEW "VIEWA" ("TITLE", "VALUE1", "VALUE2", "ID") AS
select "TITLE","VALUE1","VALUE2","ID" from dati
/
CREATE OR REPLACE FORCE VIEW "VIEWB" ("TITLE", "VALUE1", "VALUE2", "ID") AS
select "TITLE","VALUE1","VALUE2","ID" from viewa
/
Объяснить план для выбора * от viewA
Operation Options Object Rows Time Cost Bytes Filter Access
Predicates * Predicates
SELECT STATEMENT 4 1 3 268
TABLE ACCESS STORAGE FULL DATI 4 1 3 268
Объяснить план для выбора * от viewB
Operation Options Object Rows Time Cost Bytes Filter Access
Predicates * Predicates
SELECT STATEMENT 4 1 3 268
TABLE ACCESS STORAGE FULL DATI 4 1 3 268
Мой ответ должен быть: нет, нет никакой производительности разница.
Запустите «объясните план» для двух запросов и сравните результат. – Glenn
Я не знаю, ответ. Но вполне возможно, что они будут вести себя по-разному при определенных обстоятельствах. Скомпилировано представление, и эта скомпилированная форма доступна для запроса. Это может привести к тому, что другой план выполнения будет компилировать код непосредственно в запрос. –
Планировщик запросов * должен * быть достаточно умным, чтобы «сшить все вместе» (т. Е. Перепланировать весь запрос в полном контексте, если сочтет это необходимым), но только просмотр фактического плана скажет «наверняка». Там могут быть гремлины с кэшированными планами и еще что-то - иногда на SQL Server, так или иначе:> – user2246674