是否可以在视图列上创建索引?

时间:2015-07-02 15:54:29

标签: sql oracle oracle11g oracle10g

当我在视图上创建索引时,它显示以下错误

  

ORA-01702:视图不合适

create view xx_emp for select * from emp; 

背后的原因是什么............

2 个答案:

答案 0 :(得分:4)

您无法在视图上创建索引,这只是一个查询。

可以在具体化视图上创建索引。物化视图是通过评估视图创建的表,以便您可以在其上创建索引。但是,请记住,物化视图不会针对定义它的基表的每个修改进行更新,因此在必须重新计算时,应REFRESH

答案 1 :(得分:2)

在TABLE列上定义索引(例如,在EMP.EMP_ID上)

create index emp_idx on emp (emp_id);

并在查询视图时使用它

select * from xx_emp where emp_id = 1;

这对复杂视图不起作用,但对于您的简单情况,索引将(在大多数情况下)用于访问数据。