oracle调优

一、sql调优过程
1.定位高频使用sql语句
2.添加索引
3.更改优化器的牧师
4.添加提示
5.将调优持久化
二、sql全盘扫描
1.字段不平衡索引分布
2.choose 或all_rows
3.带有like的条件查询,开始用%
4 内置函数使索引无效 to_char、substr、decode
5.oracle没有手机统计信息
三、使用orace必备:执行计划、索引调优、执行计划、awr
1.一下情况情况会不走索引
条件中包含不匹配的数据类型、条件函数、orade by等函数
2.扫描结果最少的表作为驱动表
3.子查询中返回数据少时可以用in,in为非关联查询,子查询可独立
4.创建索引的原则 在有主键、外键的表中会全盘扫描,所以要在子表中创建索引,在工作中尽量避免外键链接
5.cpu占用高:解析sql、全盘扫描
6. 数据库操作慢时进行数据分析,一般表内数据改动量大于等于10%时oracle会自动记录数据分析:
查看表的统计信息
select COLUMN_NAME, NUM_BUCKETS, num_distinct
from USER_tab_columns
where table_name = ‘TEST’;
如果查询的oracle统计信息远远少于 test表中的数据是可以尝试
手动执行分析:
analyze table test compute statistics for table;
7.查询语句中添加提示:
first_rows
all_rows
rule
select /+rule/ /*+index( a index
)*/

8.sql书写规范
(1)sql语句中所有表名、字段名全部小写,系统保留字、内置函数名、sql保留大写
(2)链接符 or、in、and、以及 =、<=等后面街上一个空格
四、打开或关闭oracle统计信息执行计划
查看统计信息
SELECT ‘analyze table ’ || TABLE_NAME || ’ compute STATISTICS ;’
FROM USER_TABLES T
WHERE T.TABLE_NAME LIKE ‘JHOUTPAT%’
关闭:exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => ‘auto optimizer stats collection’,operation => NULL,window_name => NULL);
打开:BEGIN
DBMS_AUTO_TASK_ADMIN.ENABLE(CLIENT_NAME => ‘auto optimizer stats collection’,
OPERATION => NULL,
WINDOW_NAME => NULL);
END;

查看 awr报告,找出sql执行频率较高、耗时较长的语句
sql>conn sysdba;
sql>@?/rdbms/admin/awrrpt.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值