ITPub博客

首页 > 数据库 > Oracle > PerformanceTuning 笔记3 从程序员的角度来关注librarycache的使用

PerformanceTuning 笔记3 从程序员的角度来关注librarycache的使用

原创 Oracle 作者:SnowDBA 时间:2014-11-17 11:07:24 0 删除 编辑
从程序员的角度来关注librarycache的使用

1.使用绑定变量的方式减少硬解析:
select employee_id from emplyees where department_id = 10;
select employee_id from emplyees where department_id = 20;

select employee_id from emplyees where department_id = :dept_id;

2.减少动态生成的SQL语句,必要的时候再用

3.编写SQL语句是按照统一的命名规范,变量的名字要统一,空格缩进要统一

4.遇到事务尽可能的使用procedure,而不是一堆单独的SQL语句。procedure编译后直接调用就可以,不再需要解析,因此执行效率高。而且在不同的用户连接到数据库时,调用存储过程会减少data dictionary cache。

5.v$sql_shared_cursor视图可以查看为什么已经解析过的SQL没有被重复利用

6.在高并发的系统上,使用统一的用户名访问数据比通过同义词访问数据好一些,可以节约data dictionary cache
select employee_id from hr.employees where department_id = :dept_id; 

7.最好在应用层来区分连接数据库的用户,数据库层尽量使用少量的用户来连接,减少data dictionary cache

8.业务高峰期避免DDL操作,比如修改表的结果。修改后该表的parse全部失效。

常用的诊断工具如下:
v$sgastat、v$libraraycache、v$sql、v$sqlarea、v$sqltext、v$db_object_cache

SQL> select * from v$sgastat where name='free memory';

POOL         NAME                            BYTES
------------ -------------------------- ----------
shared pool  free memory                  24325200
large pool   free memory                   7503872
java pool    free memory                   4194304

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29047826/viewspace-1335784/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-06-21

  • 博文量
    223
  • 访问量
    1633598