欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle通过在线重定义后,查询效率变慢了,咋回事

更新时间: 2014-01-05 02:10:47 责任编辑: Author_N1

 

oracle通过在线重定义后,查询效率变慢了,怎么回事
    有一张大表,我通过在线重定义的方式对其进行列表分区后,发生耗费、基数、cpu耗费都变大了,这是怎么回事?
    
    在线重定义后,原非分区表的那张表变成了分区表,在同样的条件下,分区后比分区前耗费都变大了,而且两种情况都走了索引,分区表走了局部索引,原来的那张非分区表(我备份了原表)也走了索引。可是分区表的耗费高多了,基本是分区前的3倍。

    然后,我直接又建了张分区表,表结构与在线重定义时建的临时用的表一样,然后,直接将我备份表的数据插进去(不采用在线重定义)。完成后,我发现这张表的效率在两样的情况下比非分区要快,无论从哪个方面看,
耗费、基数、cpu耗费、io等等都变小了

    两张分区表我只是采用的转移数据的方式不同,然后表名不同,其余的都是一模一样,索引都一样。可是这两张表在同样的查询条件下效率却差了好几倍,差不多是5倍了,这是怎么回事呢

    现在无论我怎么弄,都一样,重新备份一张表再用在线重定义,结果还是一样。索引换成全局、索引再分区、重新做表分析这些方法都没用。结果还是一样。


     各位高手这是怎么回事呢?在线重定义感觉很方便,可是为什么会出现这种情况呢?

     (不好意思,积分是有点少,相信大家估计也是在意的这个,大家共同探讨、学习。)



     
     
--参考方法--
嗯,可能出在索引上。
1、索引碎片;
2、cluster factor;
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:10:47
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6610/
本文WWW.DOC100.NET DOC100.NET版权所有。