CREATE TABLE my_table (value) AS
SELECT 1 FROM DUAL;
create view another_view as (select * from my_table);
create view one_view as (select * from another_view);
然后,您可以查看解释计划,以便从视图中进行选择:
EXPLAIN PLAN FOR
select * from one_view;
然后:
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());
1条答案
按热度按时间ldxq2e6h1#
视图不会在任何位置持久化,因此无法"刷新"。从视图查询时,SQL引擎将重写查询以使用视图的查询,并直接从应用视图中的所有联接、筛选器等的基础表中进行选择。
给定设置:
然后,您可以查看解释计划,以便从视图中进行选择:
然后:
其输出:
Oracle不从任何视图中进行选择,它重写查询以直接从基础表中进行选择。因此,不存在视图必须"刷新"的概念;它总是表中当前的任何内容。
fiddle