Oracle数据库的优化方式

本文深入探讨了SQL查询优化的原理及应用,从默认的CBO方式到针对特定需求的优化策略,包括实例级别设置和会话级别的调整。重点介绍了如何通过设置优化方式和利用hint提示来提升查询效率,以及Oracle自动统计更新和查询状态监控的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、查询当前数据库的优化方式
show parameter optimizer_mode;

默认条件下,CBO将SQL语句的吞吐量作为优化目标,而在一些条件下,需要将相应时间作为优化目标,此时返回一行或者前几行数据
1) ALL_ROWS 默认优化方式,目标是实现查询的最大吞吐量
2)FIRST_ROWS_n 使用CBO的成本优化输出查询前N行数据,目标是满足快速响应的查询需求
3)FIRST_ROWS 是FIRST_ROWS_n的old版本,使用CBO的成本优化输出查询前几行数据,目标是满足最小响应时间需求

 

二、设置优化方式
1)在实例级别设置优化方式
alter system set optimizer_mode=FIRST_ROWS_10 scope=both
也可以在初始化参数文件中设置优化方式

2)在会话级别设置CBO优化方式
alter session set optimizer_mode=ALL_ROWS

3)在会话级别设置优化方式必须使用hint提示
select /*+FIRST_ROWS_10*/ name from emp;


默认情况下,Oracle自动运行gather_status_job来为表获得统计数据,并且监控数据库对象的所有DML操作

查询运行状态
dba_scheduler_jobs;
查询表的统计分析情况
dba_tables;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值