SQL中CBO优化方式有哪些

这篇文章给大家分享的是有关SQL中CBO优化方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一条查询语句的处理包括语法分析、语句优化和查询执行三个阶段。在语句优化阶段,Oracle默认使用基于成本的优化器(CBOcost based optimizer)来选择最好的执行计划,这个最好的标准就是消耗的系统资源如CPU以及I/O资源最少。

基于CBO的优化器有三种优化方式来满足不同的查询需求,即all_rowsfirst_rows_nfirst_rows

all_rowsOracle的默认方式,优化目标是实现查询的最大吞吐量。

first_rows_n:优化输出查询的前n行数据,满足快速响应的查询需求。

first_rowsfirst_rows方式的老版本,尽快输出查询的前几行数据。

Oracle提供在不同级别上的优化,即实例级、会话级和语句级。查询当前数据库的CBO优化方式

show parameter
optimizer_mode;

NAME                                 TYPE        VALUE

————————————
———– ——————————

optimizer_mode                       string      ALL_ROWS

在实例级设置CBO优化方式

alter system
set optimizer_mode = first_rows_10;

在会话级设置CBO优化方式

alter session
set optimizer_mode = all_rows;

在语句级设置CBO优化方式,需要使用hint提示

select
/*+first_rows_10*/ ename, sal, mgr from scott.emp;

优化器的工作过程包括根据统计数据进行SQL转换、根据资源消耗情况选择访问路径、根据统计数据选择连接方法以及确定连接次序几个步骤,最后选择一个最好的执行计划。

感谢各位的阅读!关于“SQL中CBO优化方式有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/201434.html

(0)
上一篇 2021年11月24日
下一篇 2021年11月24日

相关推荐

发表回复

登录后才能评论