解决Oracle SQL语句性能问题——SQL语句改写(视图、标量子查询及update)

我们在前述文章中也已经提到,对于高版本的关系库,尤其是针对Oracle这样的关系库,绝大多数场景下,同一语义和结果的SQL语句的具体语法,不会成为SQL语句执行计划的影响因素,但在少数场景下,针对同一语义和结果的SQL语句的不同写法,数据库优化器最终会分别为其生成不同的执行计划。因此,当一条SQL语句的执行计划不理想时,为了改变该SQL语句的执行计划,我们会考虑改写相应SQL语句,从而达到调优目的。下面,具体介绍通过SQL语句改写进行调优的方法和相关内容。

1. 消除视图(view)

视图可以简化应用的研发和维护,还可以满足安全性方面的需求。但在有些场景中,视图会为应用埋下性能隐患,尤其在大数据量业务中,大量且多层次嵌套使用视图的场景。为了消除性能隐患和优化性能,有时需要我们改写包含视图的SQL语句,分解并消除其中的相关视图,具体改写方法如下所示。

--改写前

SQL> create view v_test as

select * from tab1 where col1=...;

你可能感兴趣的:(Oracle性能优化与实例解析,oracle,sql,优化,调优,改写)