view上可以建索引吗?

[复制链接]
查看11 | 回复8 | 2007-9-23 00:42:50 | 显示全部楼层 |阅读模式
查询view时很慢,
create viewas select .function... from table A....B
的时候有用到函数
现在查询view时效率很差,怎么优化?
回复

使用道具 举报

千问 | 2007-9-23 00:42:50 | 显示全部楼层
1、View上不可以键索引。因为索引需要保存键值和ROWID,view上根本不存在ROWID,所以肯定不能在VIEW上建立索引。
2、可以通过优化你的基表类提高查询速度。
3、如果访问比较频繁,不要使用VIEW,可以使用snapshot或metrial view
回复

使用道具 举报

千问 | 2007-9-23 00:42:50 | 显示全部楼层
为什么不在视图的基表上建索引,建函数索引
回复

使用道具 举报

千问 | 2007-9-23 00:42:50 | 显示全部楼层
表上建立就可以,除非你使用物化视图.
回复

使用道具 举报

千问 | 2007-9-23 00:42:50 | 显示全部楼层
一般视图只是逻辑上的东西,当然不能建立索引了
回复

使用道具 举报

千问 | 2007-9-23 00:42:50 | 显示全部楼层
函數索引怎麼建的
需要什麼權限?
好像普通用戶建時權限不夠
回复

使用道具 举报

千问 | 2007-9-23 00:42:50 | 显示全部楼层
建立基于函数的索引要求用户必须具有 QUERY REWRITE 系统权限。
当然,CREATE INDEX 权限也得有,呵呵
回复

使用道具 举报

千问 | 2007-9-23 00:42:50 | 显示全部楼层
视图上是可以建索引的, 不过只是用来告诉CBO一些信息的.
回复

使用道具 举报

千问 | 2007-9-23 00:42:50 | 显示全部楼层
不好意思, 搞错了, 是可以加constraints.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行