Oracle迁移到Polardb-O性能优化案例
您好,我是本际云服务器推荐网的小编小本本。今天为大家介绍一个Oracle迁移到Polardb-O的性能优化案例。

优化过程
在进行了一系列的性能比较后,发现在Polardb-O执行结果返回需要14秒,而在Oracle执行结果返回值只需0.2秒,于是开始进行优化。
首先查看Polardb-O的执行计划,与Oracle的执行计划不同,猜测是统计信息的问题。但查询后发现统计信息没有问题,只有一个表的统计信息的page数量和实际数量相差了20%。于是,对该表进行了优化。
尝试将sysdate修改为now,执行时间从14秒降至1.72秒,效率有了很大的提升。而将sysdate改为now的原因是两者的provolatile不同。Oracle中的sysdate函数被标记为volatile,意味着它的值只有在读到一条记录的时候才能确定,这使得不能走索引。而在Polardb-O中,sysdate的值在每次读取一行时都会重新计算,也就是不能走索引,因此将其修改为now。
另外,需要注意的是,pg的函数有易变性,而Oracle数据库没有这个概念。IMMUTABLE表示该函数不能修改数据库并且对于给定的参数值总是会返回相同的值;STABLE表示该函数不能修改数据库,并且对于相同的参数值,它在一次表扫描中将返回相同的结果。而VOLATILE默认为该函数的值在一次表扫描中都有可能改变,因此不能做优化。
优化结果
经过以上的优化措施,Polardb-O的查询执行时间由原来的14秒降至2.4秒,与Oracle持平,优化效果非常显著。
以上是本次Oracle迁移到Polardb-O的性能优化案例,希望对大家有所帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5913.html
