oracle中视图可以创建索引吗?

2024-11-30 20:49:14
推荐回答(5个)
回答1:

oracle中视图可以创建索引,创建索引方法为:

1、打开Navicat。

2、右击oracle数据库,然后点击【打开连接】。

3、点击【其它】,然后点击【索引】,此时显示oracle数据库中所有的索引。

4、点击【新建索引】,进入索引设计界面。

5、在【常规】标签页,设置类型、表格式、表名、列名等。

6、在【高级】标签页,设置表空间、记录等选项。

7、点击【保存】,输入索引名称,然后点击【确定】。

回答2:

当然不可以啦,建索引就只能在某个表的列上,你只要记住,普通的视图就只是一条sql语句,你怎么对一条sql语句建立索引?如果数据大的话需要建立索引,那就在你的关联的字段创建索引啊,你怎么会想到要在视图上建啊,你视图和索引的概念不清楚啊。

回答3:

明确答案:
索引是针对实际数据的,不能再虚拟对象上创建。
视图上不能创建索引。

回答4:

看了看文档:

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: 视图不适用于此处

回答5:

不行,物化视图可以。