oracle中视图可以创建索引,创建索引方法为:
1、打开Navicat。
2、右击oracle数据库,然后点击【打开连接】。
3、点击【其它】,然后点击【索引】,此时显示oracle数据库中所有的索引。
4、点击【新建索引】,进入索引设计界面。
5、在【常规】标签页,设置类型、表格式、表名、列名等。
6、在【高级】标签页,设置表空间、记录等选项。
7、点击【保存】,输入索引名称,然后点击【确定】。
当然不可以啦,建索引就只能在某个表的列上,你只要记住,普通的视图就只是一条sql语句,你怎么对一条sql语句建立索引?如果数据大的话需要建立索引,那就在你的关联的字段创建索引啊,你怎么会想到要在视图上建啊,你视图和索引的概念不清楚啊。
明确答案:
索引是针对实际数据的,不能再虚拟对象上创建。
视图上不能创建索引。
看了看文档:
CREATE INDEX
Purpose
Use the CREATE INDEX statement to create an index on:
One or more columns of a table, a partitioned table, an index-organized table, or a cluster
One or more scalar typed object attributes of a table or a cluster
A nested table storage table for indexing a nested table column
里面好像没有说可以在 view 上面, 创建索引的。
再测试测试
SQL> CREATE TABLE emp1 (
2 EMPLOYEE_ID int,
3 JOB_ID int,
4 HIRE_DATE DATE
5 );
表已创建。
SQL> CREATE VIEW v_emp1 AS
2 SELECT
3 EMPLOYEE_ID, JOB_ID
4 FROM
5 emp1;
视图已创建。
SQL> CREATE INDEX idx_v_emp1 ON v_emp1(JOB_ID);
CREATE INDEX idx_v_emp1 ON v_emp1(JOB_ID)
*
第 1 行出现错误:
ORA-01702: 视图不适用于此处
不行,物化视图可以。