Oracle使用DBMS_SHARED_POOL包将对象固定到共享池

0    58    1

Tags:

👉 本文共约3122个字,系统预计阅读时间或需12分钟。

简介

DBMS_SHARED_POOL包提供存储过程来将PL/SQL对象或SQL游标固定到Oracle 共享池。一旦这些对象固定之后,将不再参与aged out,而是常驻内存,即便是使用alter system flush shared_pool也不会将对象清除出共享池。

但是,若对象失效,则也会被清理出去,例如执行计划因为表被执行了DDL后,也会被清理出 共享池。

对于一些大值对象装载进共享池时容易引发两种类型的问题:

将大值对象在实例启动时装载进共享池可以避免上述问题。

对于已经固定在内存中的包,在关闭数据库之前,该对象会被一直保留,不会清除或失效。

需要访问DBMS_SHARED_POOL这个包的任何用户都必须由SYS授予执行权限。

如果在SYS模式中创建的包并在不同的模式中运行示例代码,则首先必须给运行示例(即TEST)的用户授予EXECUTE_CATALOG_ROLE

角色且在DBMS_SHARED_POOL上给TEST以EXECUTE权限,然后需要在SYS.DBMS_SHARED_POOL.KEEP中完全地限定这个包,因为dbmspool.sql

脚本并不为这个包创建公有同义词。

类型

安装

(DBMS_SHARED_POOL缺省并没有随系统安装,在高版本中已默认安装)

要使用这个过程,首先必须运行DBMSPOOL.SQL脚本。在启动DBMSPOOL.SQL脚本后,PRVTPOOL.PLB脚本将自动执行。这些脚本不能使用CATPROC.SQL来运行。

2.以sys帐户安装DBMS_SHARED_POOL包

3.查看包包含的存储过程

二、DBMS_SHARED_POOL包的使用

三、将对象自动固定到保留池方案

四、使频繁的大值对象常驻共享池

五、下列标准的系统包建议将其pin到保留池

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

发表回复