普通视图只是数据库中存的一条SQL语句,在运行的时候才执行视图的SQL,可以用存储过程实现,存储过程会预编译,如你所述,用表会更快,可用物化视图(Materialized View)。
SQL code
示例为主键物化视图:
下面的语法在远程数据库表emp上创建主键物化视图
SQL> CREATE MATERIALIZED VIEW mv_emp_pk
REFRESH FAST START WITH SYSDATE
NEXT SYSDATE + 1/48
WITH PRIMARY KEY
AS SELECT * FROM emp@remote_db;
优化视图的SQL可以使用autotrace 功能查看执行计划
SQL code
SQL>set autotrace off --默认为不打开
SQL>set autotrace on --查看执行计划和查询信息
SQL>set autotrace traceonly --只显示执行计划,但不显示查询输出
SQL>select ... from ... --你的查询语句