Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

1

主题
1#
发表于 2013-3-26 19:04:16 | 查看: 6285| 回复: 3
ORACLE版本:10.2.0.3
有一分区表EMP,由于数据量非常大,因此以DEPTNO进行List分区(根据不同值建立10个分区)
现在有此查询
SELECT *
  FROM EMP
WHERE DEPTNO = :1 AND EMPNAME = :2

问从性能上考虑,应该如何创建索引?
1)建立(DEPTNO,EMPNAME)的本地前缀分区索引;
2)建立(EMPNAME)的本地非前缀索引;

在这种情况下1)和2)有什么区别?
我的理解是都会在先在相应DEPTNO的索引分区中查找,效率应该是一样的,所建成的索引空间大小应该也一样的。求指教?

但继续思考,假设我的理解是正确的话,那么 本地前缀分区索引 的存在有何意义呢?求解答,谢谢!
2#
发表于 2013-3-27 09:12:41
在查询效率方面,我也有同样的疑问
不过区别还是有点的:前缀索引是可以用来做主键的,因为每个分区的前缀都不一样
非前缀索引就没办法了

回复 只看该作者 道具 举报

3#
发表于 2013-3-27 21:29:39

回复 只看该作者 道具 举报

4#
发表于 2013-3-27 23:21:54
Maclean Liu(刘相兵 发表于 2013-3-27 21:29
见这个帖子http://t.askmaclean.com/thread-1266-1-1.html

谢谢你的回答!根据你在此链接帖子的回答,我的理解是你觉得1)方式的效率高点?
但我还是不明白,为什么?两者不都是在相应DEPTNO的索引分区中查找吗?在实践中,我对比了查询的执行计划,两种方式执行路径一样,开销也一样。

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-6-14 23:37 , Processed in 0.047559 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569