oracle 共享池配置,Oracle 性能调优学习札记(四)- 调优共享池

Oracle 性能调优学习笔记(四)-- 调优共享池

共享池:大小有SHARED_POOL_SIZE决定.

库缓存:包含语句文本,解析码,执行计划信息被用户共享.

管理被LRU算法.在共享池内存不够的时候,报

ORA-040331.被用来阻止语句重复解析.提高硬编译,

提高软编译.用于定位共享池匹配的SQL语句.

数据库字典缓存:表,列,权限等数据字典信息.

用户全局区(仅在共享服务器模式,并且在large

pool没有配置情况下存在)

SQL 共享

1.当前语句在共享池中是否存在

2.语句被hash之后,判断语句是存在,不存则硬编译.

cursor_sharing=exact|similar|force

1.通常默认cursor_sharing='exact',常量不同,使用硬解析.当cursor_sharing设置为

similar或者force,sql语句,常量不同,可以共享解析.

alter system set cursor_sharing='similar';

2.当语句中的对象和share pool对象结构不一致,则语句重新编译.

3.使用变量绑定,可以提供语句的共享率,从而提高性能.

4.会话环境必须一致,SQL的优化器必须一致.

查看执行时间

set timing on

调优libary cache

1.确保用户可以共享语句.

2.分配足够的内存.

3.避免包含无效的重解析.

避免匿名的PLSQL块.

最好配置一个large pool;

v$libarycache:了解各个字段的信息.

1.建议采用预定义SQL(最好使用绑定变量和空格等最好有规定).

2.不要修改应用的优化器.

3.尽可能采用存储过程.

根据v$sql_shared_cursor查看sql语句不能共享的原因.

在应用系统最好只使用一个用户,多次登录.减少各种信息在数

据字典中缓存.

1.高效存储过程的使用

存储过程中是以所有者用户执行.不是以调用用户执行.

2.避免DDL的频繁执行或者在低峰时执行.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值