首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle索引,过犹不及
【标  题】:Oracle索引,过犹不及
【关键字】:Oracle
【来  源】:BLOG.CSDN.NET

Oracle索引,过犹不及

我有几个oracle存储过程,其中有两个涉及到递归运算,相对来说非常费时间的。这几个oracel程序我给他们编号为 p1,p2,p3,p4,p5  其中p2,p5有较复杂的递归运算,涉及到的表格也有4个,分别为t1,t2,t3,t4。另外还有一些基础表。

数据首先数据在基础表中,t1,t2,t3,t4中没有数据。

基础表 ----->p1---->t1  ----->p2---->t2----->p4-------\
                                   \                                                       \ 
                                     \                                                      |--->t4
                                       \                                                  /
                                         \ --- >p3---->t3 ---->p5-------/

t1,t2,t3,t4数据结构基本一样,
p1是将基础库中的数据按不同的类别(六种类别)t根据规则进行计算,将结果存到t1中。
p2是将t1中的数据按类别不同分别进行递归运算。将结果存储到t2中
p3是将t1中的数据不同类别的代号相同(解释:每个类别的数据都有一个唯一号与其它的类别的数据相同)数据进行汇总。结果存入t3,t3中的数据就不会分类别了。因为是汇总了的。
p4将t2中的数据进行汇总,算法与p3相近,只不过p4汇总的是已经进行过递归运算的数据。最后结果存入t4
p5将t3总的已经汇总了的数据进行递归运算。算法与p2相近。但是此时只进行一次递归。而p2是对各个类别分别进行递归。最后结果与p4运算的结果理论上是一样的。也就是从基础数据可以通过两个路径求出最终的结果(t4)。

首先我是在四个表中分别建了3-4个索引:在唯一号(id)和p_id上(解释:p_id 与唯一号(p_id)进行内部关联形成了比较复杂的树状结构)各建一个,另外有两个会用来作条件限定的字段也分别建了索引。

此时对五中运算进行测试。结果:

程序执行时间表
  max(秒) min(秒) avg(秒)
 p1 67 19 20
 p2 101 67 70
 p3 6 2.5 3
 p4 6 2.5 3.5
 p5 19 8 10

或来我将那两个用作条件限定的字段上面的索引删了,只留下id和p_id上面的索引。有进行了测试。结果:

程序执行时间表
  max(秒) min(秒) avg(秒)
 p116 12 14
 p2665458
 p31.6 1.3 1.4
 p41.51.31.4
 p510.88.69

可见除了p5性能提升只有10%较低。其它的提升都达到了20%以上。

 我们建立的索引在查询的时候性能会提高,但是在插入或者修改删除数据的时候性能会降低。也就是索引多了不一定性能就能提升。所谓过犹不及。所以我们在建立索引的时候要根据具体的需要和具体的情况酌情在相应的字段或字段组合上建立索引,以保证最高的性能回报。

如何去掉菜单的边框:【上一篇】
Oracle连接- -:【下一篇】
【相关文章】
  • oracle中子句执行顺序
  • .net 连接oracle 出现 无法加载DLL(OCI.DLL) 不知道那位高人可以给出 解决办法
  • ORACLE SQL性能优化系列(四)
  • ORACLE SQL性能优化系列(五)
  • ORACLE SQL性能优化系列(六)
  • ORACLE SQL性能优化系列(七)
  • ORACLE SQL性能优化系列(八)
  • ORACLE SQL性能优化系列(九)
  • Oracle数据库的数据统计(Analyze)
  • oracle的优势到底在哪里?
  • 【随机文章】
  • 从torque到 nebula2
  • 内嵌或嵌入SQL和存储过程之对比
  • MapInfo出支持FrameWork 2.0的产品了!
  • 在ADO使用SELECT语法一
  • 全面了解MAC OS X系统-适用开发人员(2)
  • oracle 在RHELAS4上的安装
  • 家庭无线局域网组网指南
  • eBook Edit Pro 3.21 算法分析及注册机源码
  • 梦幻情缘5.0-----我希望你好好的
  • Flash鼠绘教程
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.