dbms_shared_pool

来源:互联网 发布:马龙 王皓 知乎 编辑:程序博客网 时间:2024/06/04 18:58

该包提供了访问共享池的方法。通过执行@?/rdbms/admin/dbmspool.sql创建。能展示在共享池中的对象的大小,将对象keep或unkeep在共享池里,目的是减少碎片。

该存储过程对于加载大的pl/sql对象的时候很有用,当加载大pl/sql对象的时候,因为大量的小对象需要被交换出共享区来为大对象腾空间,所以用户的响应时间也是受影响。

dbms_shared_pool也对于频繁执行的触发器有影响。你也许回想要keep在频繁使用的表上的触发器在共享池中。另外dbms_shared_pool支持序列号。sequence在被交换出共享池的时候会中断。dbms_shared_pool将序号保存在共享池中,这样阻止了丢失序列号的问题。

下面是保存对象的例子

DBMS_SHARED_POOL.KEEP('scott.hispackage')

下面是显示一定大小对象的例子,这个方法显示了共享池中的大于指定尺寸的对象,在sqlplus中执行的时候,需要设置'SETSERVEROUTPUT ON SIZE XXXXX' 来显示返回的结果

DBMS_SHARED_POOL.SIZES (
   minsize NUMBER);

下面是unkeep的语法

DBMS_SHARED_POOL.UNKEEP (
   name VARCHAR2,
   flag CHAR     DEFAULT 'P');


0 0