- 浏览: 111694 次
- 性别:
- 来自: 北京
文章分类
最新评论
当系统在加载PL/SQL大对象时,有可能遭遇由于SharedPool中存在大量碎片导致没有足够空间加载的问题。
我们可以将那些经常被使用的PL/SQL大对象预先保存到Shared Pool中,防止加载失败以及经常被换出,提高系统运行效率。
1.创建存储过程初始化测试环境
这里使用文章《【PL/SQL】向表中插入连续数字之PL/SQL方法》(http://space.itpub.net/519536/viewspace-696181)中提供的方法创建一个简单的存储过程用于测试。
注:实际生产环境中,该方法用于保存PL/SQL大对象,而非本例中给出的样例存储过程。
sys@ora10g> conn sec/sec
Connected.
sec@ora10g> create or replaceprocedurep_insert
2 is
3 begin
4 for i in 1..10 loop
5 insert into t values(i);
6 end loop;
7 commit;
8 end;
9 /
Procedure created.
2.创建DBMS_SHARED_POOL包
系统默认情况下不会创建dbms_shared_pool这个包。我们可以使用dbmspool.sql脚本进行手工创建。
1)验证默认情况下DBMS_SHARED_POOL包未创建
sys@ora10g> desc dbms_shared_pool
ERROR:
ORA-04043: object dbms_shared_pool does not exist
2)执行创建DBMS_SHARED_POOL包脚本
sys@ora10g> @?/rdbms/admin/dbmspool.sql
Package created.
Grant succeeded.
View created.
Package body created.
3)查看创建成功的DBMS_SHARED_POOL包
sys@ora10g> desc dbms_shared_pool
PROCEDURE ABORTED_REQUEST_THRESHOLD
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
THRESHOLD_SIZE NUMBER IN
PROCEDURE KEEP
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
NAME VARCHAR2 IN
FLAG CHAR IN DEFAULT
PROCEDURE SIZES
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
MINSIZE NUMBER IN
PROCEDURE UNKEEP
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
NAME VARCHAR2 IN
FLAG CHAR IN DEFAULT
我们这里关注DBMS_SHARED_POOL包中的KEEP和UNKEEP方法。
3.使用DBMS_SHARED_POOL包将存储过程保存到Shared Pool
1)确认存储过程P_INSERT是否被保存到Shared Pool
可以通过查询v$db_object_cache视图获得这方面的信息。
sys@ora10g> col owner for a10;
sys@ora10g> col name for a30;
sys@ora10g> col kept for a4
sys@ora10g> select owner,name,type,kept from v$db_object_cache where name='P_INSERT';
OWNER NAME TYPE KEPT
---------- ------------------------------ -------------------- ----
SEC P_INSERT PROCEDURE NO
最后一列KEPT表明存储过程P_INSERT此时没有被保存到Shared
Pool。
2)保存存储过程P_INSERT到Shared Pool
由于存储过程p_insert是创建在sec用户下,我们可以使用如下方法将该存储过程保存到Shared Pool中。
sys@ora10g> exec dbms_shared_pool.keep('SEC.P_INSERT','P');
PL/SQL procedure successfully completed.
3)在此确认存储过程P_INSERT是否被保存到Shared
Pool
sys@ora10g> select owner,name,type,kept from v$db_object_cache where name='P_INSERT';
OWNER NAME TYPE KEPT
---------- ------------------------------ -------------------- ----
SEC P_INSERT PROCEDURE YES
最后一列KEPT表明存储过程P_INSERT此时已被保存到Shared
Pool。
4.使用DBMS_SHARED_POOL包解除Shared Pool中保存的存储过程
我们这里使用UNKEEP方法可以解除Shared Pool中保存的存储过程。
sys@ora10g> exec dbms_shared_pool.unkeep('SEC.P_INSERT','P');
PL/SQL procedure successfully completed.
sys@ora10g> select owner,name,type,kept from v$db_object_cache where name='P_INSERT';
OWNER NAME TYPE KEPT
---------- ------------------------------ -------------------- ----
SEC P_INSERT PROCEDURE NO
解除成功。
原文地址:http://space.itpub.net/519536/viewspace-696189
发表评论
-
Google公开Megastore论文——解决NoSQL、SQL融合难题
2011-03-02 14:44 639实际上,作为一个建 ... -
开源数据库Sharding技术
2011-03-02 16:14 685内容摘要:Sharding 不是一个某个特定数据库软件附 ... -
Java 开发 2.0: 使用 Hibernate Shards 进行切分
2011-03-02 16:26 614当关系数据库试图在 ... -
可扩展的分布式数据库架构
2011-03-03 14:44 660本文发表在《程序员 ... -
OLTP系统与DSS系统对比
2011-03-03 15:35 614在进行数据库系统的设计时,一个不可忽视的问题是弄清你所 ... -
Oracle高级复制机制
2011-03-10 15:48 635Oracle高级复制即可支 ... -
Oracle高级复制的同步复制的配置步骤说明
2011-03-10 15:50 808以下的文章主要讲述的是Oracle高级复制的同步复制,如 ... -
linux oracle中文乱码问题解决方法
2011-04-11 15:18 674connect system/oracle9i ... -
ubuntu下安装ocfs2
2011-07-12 14:20 942简介 一个集群文件系统能使运行在集群中所有节点并发的通过 ... -
asm下载地址
2011-07-12 16:50 799asm rpm包下载地址http://www.oracle.c ... -
oracle重要初始参数
2011-09-28 17:15 845OPEN_CURSORS session可以打开的游标最大数, ... -
SQLJ是什么?优点?
2011-10-11 09:56 879SQLJ是一种允许把静态的SQL语句以文本形式嵌入Java程序 ... -
共享池的调整与优化(Shared pool Tuning)
2011-10-11 10:53 711共享池(Shared pool)是SGA中最关键的内存片段,共 ... -
oracle sga相关
2011-10-12 17:08 811oracle主要影响性能的内存: Shared ... -
oracle内存调整相关
2011-10-14 15:52 862db_cache_size与sga_target关系 db_ ... -
oracle索引分类
2011-10-17 13:31 819B-TREE INDEX,B树索引:在创建索引时他是 ... -
修改oracle redo log的大小
2011-10-17 15:53 10561.查看现在的REDO GRO ... -
本地管理表空间
2011-10-18 13:29 732本地管理表空间的好处: 1:快速,并发空间操作 ... -
Oracle表空间命令
2011-10-19 16:55 770创建立表空间 CREATE TABLESPACE ... -
Oracle 索引组织表(IOT)
2011-10-28 09:16 760索引组织表(IOT)有一种类B树的存储组织方法。普通的堆组织表 ...
相关推荐
<br>对象浏览器——可配置的树形浏览能够显示同PL/SQL开发相关的全部信息,使用该浏览器可以获取对象描述、浏览对象定义、创建测试脚本以便调试、使能或禁止触发器或约束条件、重新编译不合法对象、查询或编辑...
对象浏览器——可配置的树形浏览能够显示同PL/SQL开发相关的全部信息,使用该浏览器可以获取对象描述、浏览对象定义、创建测试脚本以便调试、使能或禁止触发器或约束条件、重新编译不合法对象、查询或编辑表格、浏览...
<br>对象浏览器——可配置的树形浏览能够显示同PL/SQL开发相关的全部信息,使用该浏览器可以获取对象描述、浏览对象定义、创建测试脚本以便调试、使能或禁止触发器或约束条件、重新编译不合法对象、查询或编辑...
读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法,而且可以掌握sql语句和pl/sql的各种基础知识和高级特征(记录类型、集合类型...
读者不仅可以掌握Oracle常用工具Oracle Universal Installer、Net Comfiguration Assistant、SQL Developer、SQL*Plus的作用及使用方法,而且可以掌握SQL语句和PL/SQL的各种基础知识和高级特征(记录类型、集合类型...
读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法,而且可以掌握sql语句和pl/sql的各种基础知识和高级特征(记录类型、集合类型...
ORACLE数据库使用dbms_stats包手动收集关于表的、索引的统计信息。
SQL基本命令 PL/SQL使用的数据库操作语言还是基于SQL的,所以熟悉SQL是进行PL/SQL编程的基础。SQL语言的分类情况大致如下: 1) 数据定义语言(DDL):Create,Drop,Grant,Revoke,… 2) 数据操纵语言(DML):...
ORA-04063: package body SYS.DBMS_REGISTRY_SYS has errors
对象浏览器——可配置的树形浏览能够显示同PL/SQL开发相关的全部信息,使用该浏览器可以获取对象描述、浏览对象定义、创建测试脚本以便调试、使能或禁止触发器或约束条件、重新编译不合法对象、查询或编辑表格、浏览...
可配置的树形浏览能够显示同PL/SQL开发相关的全部信息,使用该浏览器可以获取对象描述、浏览对象定义、创建测试脚本以便调试、使能或禁止触发器或约束条件、重新编译不合法对象、查询或编辑表格、浏览数据、在对象...
全面介绍了PL/SQL语言的包、触发器、动态SQL、外部例程、对象、集合等基本概念,而且还集中讨论了Oracle8i提供的最新功能。这些新的特性包括如何使用内置包,优化策略,以及PL/SQL程序的调试技术等。本书从以下几个...
oracle中DBMS_SQL的使用,详细讲解oracle DBMS_SQL的使用办法
作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息. DBMS_STATS.GATHER_TABLE_STATS的语法如下: DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2, estimate_...
·处理外部例程、对象类型、大对象和安全文件; ·使用DBMS_ALERT 和DBMS_PIPE 在并行会话间通信; ·通过Oracle Net Services 和PL/SQL 包装器调用外部过程; ·使用Oracle JVM 集成内部和服务器端Java ...
Oracle DOM编程 文档,有要的没 Start from toc.htm DBMS_XMLDOM DBMS_XMLPARSER DBMS_XMLQUERY
C# 访问Oracle示例+PL/SQL+存储过程+触发器 完整示例 测试可用 --PL/SQL基础1 declare begin dbms_output.('不输出不换行'); dbms_output.put_line('输出并换行'); end; --PL/SQL基础2 declare dig number(20,...
<br>对象浏览器——可配置的树形浏览能够显示同PL/SQL开发相关的全部信息,使用该浏览器可以获取对象描述、浏览对象定义、创建测试脚本以便调试、使能或禁止触发器或约束条件、重新编译不合法对象、查询或编辑...