ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 对象驻留内存

对象驻留内存

原创 Linux操作系统 作者:木呼 时间:2010-08-31 17:08:18 0 删除 编辑

驻留内存
将表中的数据常驻内存
alter table table_name
storage(buffer_pool keep);
查询关联对象,需要先执行oracle 的脚本以获取oracle的包
SQL>@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utldtree.sql
然后
SLQ>exec deptree_fill('procedure', 'scott', 'proc3')

SQL> SELECT * FROM IDEPTREE;
DEPENDENCIES
------------------------------------
PROCEDURE SCOTT.PROC3
PROCEDURE SCOTT.PROC2
PROCEDURE SCOTT.PROC1

PROC1中调用了PROC2
PROC2中调用了PROC3
当然,我们也可以通过查询数据字典USER_DEPENDENCIES
列明                          说明
NAME                         对象名称
TYPE                          NAME列的对象类型
REFERENCED_OWNER   和NAME列的对象有关联的对象的所有者的名字
REFERENCED_NAME    和NAME列的对象有关联的对象的名称
REFERENCED_TYPE   和NAME列的对象有关联的对象的类型
REFERENCED_LINK_NAME  REFERENCED_NAME如果是远程的对象,所使用的DatabaseLink的名字

如何让存储过程执行部分常驻内存
 存储过程驻留在内存中会加快的调用速度 ,但是过分使用,会增加共享池(Share Pool)的负荷
使用DBMS_SHARED_POOL
首先,我们需要用SYS执行下面的脚本
$ORACLE_HOME/rdbms/admin/dbmspool.sql
SQL> @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\dbmspool.sql

程序包已创建。
授权成功。
视图已创建。
程序包体已创建。
执行,将SP_ACC_ADDASSITINFO驻留内存
SQL> exec dbms_shared_pool.keep('huarongbase.SP_ACC_ADDASSITINFO','p');
PL/SQL 过程已成功完成。
我么你可以通过v$db_object_cache视图来确定驻留的对象
SQL> select name,type from v$db_object_cache where kept='YES' and wner='HUARONGBASE';
NAME        TYPE
-------------   ---------------
SP_ACC_ADDASSITINFO  PROCEDURE

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

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

注册时间:2010-04-19

  • 博文量
    93
  • 访问量
    169219