oracle中视图可以创建索引吗?
发布网友
发布时间:2022-04-27 06:08
我来回答
共7个回答
热心网友
时间:2022-04-08 00:36
oracle中视图可以创建索引,创建索引方法为:
1、打开Navicat。
2、右击oracle数据库,然后点击【打开连接】。
3、点击【其它】,然后点击【索引】,此时显示oracle数据库中所有的索引。
4、点击【新建索引】,进入索引设计界面。
5、在【常规】标签页,设置类型、表格式、表名、列名等。
6、在【高级】标签页,设置表空间、记录等选项。
7、点击【保存】,输入索引名称,然后点击【确定】。
热心网友
时间:2022-04-08 01:54
当然不可以啦,建索引就只能在某个表的列上,你只要记住,普通的视图就只是一条sql语句,你怎么对一条sql语句建立索引?如果数据大的话需要建立索引,那就在你的关联的字段创建索引啊,你怎么会想到要在视图上建啊,你视图和索引的概念不清楚啊。
热心网友
时间:2022-04-08 03:28
明确答案:
索引是针对实际数据的,不能再虚拟对象上创建。
视图上不能创建索引。追问sqlserver上可以在视图上创建索引。如果视图不能创建索引如果数据量特别大的时候要如何处理呢?没有索引查询起来可是会很难受的!
追答增加索引是可以的,需要在表上增加。
如果是生产在线的数据库,而且数据量很大,建议修改硬顶要做好备份工作。
以确保意外情况下的恢复。
热心网友
时间:2022-04-08 05:20
看了看文档:
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: 视图不适用于此处追问好像在物化视图上可以创建索引,不过没有用过物化视图也不清楚是个什么概念!
热心网友
时间:2022-04-08 07:28
不行,物化视图可以。
热心网友
时间:2022-04-08 09:52
不可以,但可以 应用表的索引
热心网友
时间:2022-04-08 12:34
视图一般不需要创建索引的,查询速度已经够快了