oracle编程入门笔记2015-01-30--model子句性能

本文探讨了model子句的关键性能问题,特别是在rules中的规则求解方面。它介绍了五种执行计划类型,并解释了如何通过orderby指定计算顺序来避免循环依赖。此外,文章还提到了sequentialorder选项在复杂规则集中的应用,以及orderedfast和acyclicfast执行计划的选择策略。

model子句也有自己的性能问题。model子句的关键性能问题是出现在rules中的各种规则的求解。根据rules的复杂度,执行顺序,多个规则的依赖关系。model子句会产生不同的执行计划,而这些执行计划就是model子句调优的关键。

概述:

model子句执行计划有如下五种,cyclic,acyclic,ordered以及acyclic fast和ordered fast。

没有绝对的优劣但是如果在同样的业务场景下ordered fast 优于ordered;acyclic fast 优于acyclic优于cyclic

使用rules automatic order子句就会产生cyclic,acyclic或者acyclic order执行计划。例子是偷来的。

rule中存在不明确的执行顺序就会产生cyclic执行计划意味着在实际执行中可能存在循环。

由于rule中没有指定year和week的计算顺序,所以可能存在循环依赖,从而选择了cyclic


明确通过order by 指定了计算顺序,就会选择acyclic。


如果规则仅仅对访问某一个单元格,规则简单就会使用acyclic fast。


rules还有一个执行顺序选项是sequential order。这个是某人的rules执行顺序,如果选择这个就要安排好多个rule的先后顺序。使用这个选项就会产生ordered或者ordered fast执行计划。

规则教复杂就会选用ordered


如果是针对单行的计算就是ordered fast,这个例子没有偷到,自己造了一个


据说在表比较大的时候使用model子句做一些计算会比传统sql快很多。只是听说,实际验证可能数据量比较小,没有明显差异



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值