文档课题:alter system flush shared_pool命令解析.
数据库:oracle 11.2.0.4 64位
场景描述:
作为DBA,一定遇到过ORA-04031共享池不够用的情况,该告警主要体现在客户端连接异常以及系统响应缓慢等问题上.
解决方案:
可先使用alter system flush shared_pool刷新sga,该语句不会删除procedure与function,只是暂时解决shared_pool中的碎片问题,大量不能共享的sql很快又会产生碎片.根本的解决办法是优化sql,keep经常使用的包、cursor_sharing参数.注意该命令会造成短时间的性能下降,因为parse过的sql都被清理出sga.
测试过程:
查share_pool碎片.
SQL> select count(*) from x$ksmsp;
COUNT(*)
----------
14672
使用此前未曾使用过的查询,让share pool分配内存,增加share pool的chunk碎片.
SQL> select * from scott.emp t where empno in (select t.empno from scott.emp t where t.deptno in (20,30));
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30
7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20
7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20
11 rows selected.
再次查share_pool碎片.
SQL> select count(*) from x$ksmsp;
COUNT(*)
----------
15069
说明:每个buckets碎片数量>2000就视作不太好的情况,可能会引起share pool latch争用.
SQL> alter system flush shared_pool;
System altered.
SQL> select count(*) from x$ksmsp;
COUNT(*)
----------
5185
总结:执行该命令是将缓存在library cache和data dictionary cache中的sql、pl/sql和数据字典定义都从共享池中清除,在负载很高的生产库慎用该命令.
参考网址:
http://blog.itpub.net/29144194/viewspace-1219756/
https://blog.csdn.net/kadwf123/article/details/8564869
说明:以上内容基本来自以上网址,如有侵权,请联系博主删帖.
alter system flush shared_pool命令解析
原创Liujun_Deng 博主文章分类:Oracle ©著作权
©著作权归作者所有:来自51CTO博客作者Liujun_Deng的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
如何解决 Odoo 的 psycopg2.pool.PoolError: The Connection Pool Is Full 错误:增加 PostgreSQL 最大连接数
修改数据库最大连接数
PostgreSQL 配置文件 postgresql -
Shared Pool详解
shared pool的概述oracle数据库作为一个管理数据的产品,必须能够认出用户所提交的管理命令(通常叫做SQL语句),从而进行响应。认出的过程叫做解
数据库 数据结构与算法 人工智能 sql语句 sql -
system4阻止硬盘弹出
关于磁盘IO的总结 1. 完全随机写还是跳跃,5倍的性能差距!... 12. 多线程随机读、处理速度、响应时间... 23. 是否使用direct io. 24. 系统缓存... 34.1. 系统缓
system4阻止硬盘弹出 磁盘 io 多线程 cache