求提高Oracle分区表查询效率的方法

xspf 2008-01-08 04:31:12
请教各位高人:
有一个客户表,对机构号INSTN_NO用range方式进行分区,主键为客户号CUST_ID。

从客户表进行查询时,已经知道客户号CUST_ID和客户的初始机构号。

现在用CUST_ID直接进行关联查询的效率有点低,想把机构号INSTN_NO也作为条件加到WHERE语句中去,但是客户的机构号可能会发生变更(但不会超出分区范围),所以条件中可以使用的初始机构号在查询时直接关联可能是关联不上的,只能用于判断该客户记录位于哪个分区。

现在就是这样的情况,请教各位高人有什么提高效率的办法没有?
...全文
4631 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhj9811220 2010-05-23
  • 打赏
  • 举报
回复
CUST_ID CHAR(30),

上面的字段改为数字类型再看看
weixq1982 2010-03-29
  • 打赏
  • 举报
回复
帮顶,看看
wfx1018 2008-07-24
  • 打赏
  • 举报
回复
建立局部索引,
查询的时候,带上分区字段.
xly2204 2008-07-23
  • 打赏
  • 举报
回复
把执行计划打出来看了可能更有帮助
SANSWATER 2008-07-21
  • 打赏
  • 举报
回复
建一个索引INDEX试一下
allanmorgan 2008-07-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 siguomi 的回复:]
最简单的方法:
客户表增加字段:初始机构号,这样以后就可以根据此进行关联查询了。
有些时候,为了性能,多些冗余字段是必要的。
[/Quote]
wind__dance 2008-07-19
  • 打赏
  • 举报
回复
路过学习
siguomi 2008-07-16
  • 打赏
  • 举报
回复
最简单的方法:
客户表增加字段:初始机构号,这样以后就可以根据此进行关联查询了。
有些时候,为了性能,多些冗余字段是必要的。
多壮志 2008-07-16
  • 打赏
  • 举报
回复
按照 5,11 楼处理.
Create index ind_1 on table(col1,col2...) local;
jiang9885_0 2008-07-16
  • 打赏
  • 举报
回复
帮顶
Airroll 2008-05-21
  • 打赏
  • 举报
回复
如果选择性高的话
建local index啊。。。
huoxudong125 2008-05-19
  • 打赏
  • 举报
回复
这里的分区不会起到预期效果吧!
ehuman 2008-05-19
  • 打赏
  • 举报
回复
学习。。。
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
不会,帮顶
hailang_maxu 2008-01-11
  • 打赏
  • 举报
回复
select * from tablename

where CUST_I=&num
partition(p1);
xspf 2008-01-11
  • 打赏
  • 举报
回复
能不能具体点啊,Oracle我实在很菜。
xspf 2008-01-09
  • 打赏
  • 举报
回复
不要沉啊,高人们帮帮忙。
kuaising 2008-01-09
  • 打赏
  • 举报
回复
分别建分区索引,查询时加上分区号.
xspf 2008-01-08
  • 打赏
  • 举报
回复
谢谢各位!

就是下面一张表,表的字段其实非常多,有八十多个,怕大家看不清,我都删掉了。

现在的情况是我直接用CUST_ID作为条件的话,不论查询还是更新都比较慢,尤其是更新,完全不能满足要求,但是机构号可能会改变(但不会超过分区范围,比如杭州的客户的机构只能在杭州范围内变更),因此不能直接作为查询条件。

create table F_CUST_INFO
(
CUST_ID CHAR(30),
INSTN_NO CHAR(9),
OPAC_AMT NUMBER(20,2),
OPAC_DT DATE,
OPAC_PERM_NO CHAR(15),
SRC_SYS_NO CHAR(10),
LOAD_DT CHAR(23)
)
partition by range (INSTN_NO)
(
partition HANGZHOU values less than ('629999'),
partition JIANXING values less than ('639999'),
partition HUZHOU values less than ('649999'),
partition SHAOXING values less than ('659999'),
partition TAIZHOU values less than ('669999'),
partition JINHUA values less than ('679999'),
partition HENZHOU values less than ('689999'),
partition LISHIU values less than ('699999'),
partition ZHOUSHANG values less than ('709999'),
partition QITA values less than (MAXVALUE)
);

alter table F_CUST_INFO
add primary key (CUST_ID)
using index ;
kinglht 2008-01-08
  • 打赏
  • 举报
回复
友情帮顶!
加载更多回复(1)

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧