# 612
vienna
来自: comefrom
|
|
To: eygle
google上搜到这里来的^_^
工作中碰到一个问题,想请教一下。
项目正在做性能测试。业务中需要查询ORACLE中的一个表,这个表中有大约600万条数据。表的主键由7个字段组成,测试下来,整个业务走下来大概要40分钟,后来我们进行调整,看到原先ORACLE自动将主键做成 UNIQUE INDEX,我们在次基础上,对相同的字段,即主健字段做了普通索引,再测试,时间顿时减为31秒。
由于中间相差过分悬殊,而我又想不通为什么多了一个UNIQUE 就会相差那么多?
如果能让我解惑就太好了^_^
From: vienna 2005.01.20 00:04
|
|
|
|
To: vienna
Oracle会为主键自动创建唯一索引及非空约束
而普通B*tree索引允许存在空值(但是不能索引空值),而且不进行唯一性校验,所以两者在性能上存在差异。
当然差异巨大,具体还要看你的测试逻辑。
你可以观察v$session_wait,v$system_event等视图,确定Oracle把时间消耗在什么上面。
-eygle
From: eygle 1969.12.31 16:00
|
|
|
|