oracle重新编译package,oracle package 编译问题

有时候,一些package编译的特别慢,大多数原因是library cache lock 或者 library cache pin。可以kill掉相关的session再重新编译。有时候用plsql dev来编译pck,也会莫名的慢,可以考虑用sqlplus来编译。

alter package pck_name compile [package|body|SPECIFICATION];

可以用show err[or] 来看编译错误。

如果shared_pool过小,也就是library cache过小,也可能造成编译过慢,因为这些pck也是被cache到内存的。相关数据字典:dba_source,v$db_object_cache等。library cache 无法直接定义其大小,也要通过shared_pool来修改。

如果library cache 长期放大对象,碎片会增多,导致效率低下,可以用

alter system flush shared_pool; 来调整。

个人的一些理解,请大家指教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Direct Oracle Access 组件有两种版本,Direct Oracle Access Standard version 和 Direct Oracle Access Object version Object版允许你通过TOracleObject和TOracleReference 对象使用 Oracle8的对象扩展。 如果您正在使用 Borland 的 Delphi 或 C++Builder 开发 Oracle 应用程序,那么 Direct Oracle Access 组件集将帮助您实现 Borland 开发工具和 Oracle 数据库系统之间的无缝集成。 使用 Direct Oracle Access,应用程序可以充分利用两个产品的优势。 主要特性: 高性能 ——Oracle的性能特性对于在线业务和批处理程序非常有用。通过Direct Oracle Access,能够直接访问Oracle接口,从而使得标准的数据库访问函数实现性能最优。而该组件集还支持Array Fetching, Array DML, PL/SQL Blocks, PL/SQL Tables、本地语句缓存和直接路径装载引擎,进一步优化了您程序的性能关键函数。 程序发布方便 ——Direct Oracle Access程序无需BDE或ODBC等中间件,只要求Oracle SQL*Net 或Net8。这样,您在布署应用程序时,无需考虑中间件的安装,避免了许多版本依赖性和配置问题Oracle Package支持 ——Oracle数据库中的多数PL/SQL代码被编程为程序包。Direct Oracle Access提供了一个TOraclePackage组件,您可以方便的调用打包后的程序单元,而无需对这些程序单元和参数做细节说明。 Direct Oracle Access还含有一个Package向导,可以生成类,用以封装程序单元,并记录程序包中定义的类型。最终,将您的Oracle程序包变为Object Pascal或C++语言的自然扩展。 TOracleDataSet ——该数据集组件支持Oracle记录锁定、记录刷新、服务器生成值、自动队列值生成、BLOB压缩。如果主表和从表之间存在外来关键字,或主表含有一个或多个列或属性(网表或varray),那么主从复合关系将自动建立。 TOracleDataSet可以在运行时使用Oracle字典内的信息,在客户端检查服务器约束,并在消息表中读取约束错误消息。能够从字典中获得格式屏蔽、区域值和默认值。这样,您所创建的应用程序将尽可能少的含有编译为可执行文件的数据库知识,还能够动态适应数据库的变化,无需重新编译。 支持Oracle专有特性 ——Direct Oracle Access支持许多Oracle专有特性。除了以上提及的特性之外,还支持Oracle 8和Oracle 8i特性,如LOB定位、对象和参考、XML TYPE、时间戳、滚动查询、密码到期、外部程序开发以及MTS Oracle服务等。 主要功能: 按范例查询模式 ——TOracleDataSet组件含有一个按范例查询模式,无需额外编程,也无需添加其他组件或控件,就能为您的程序提供QBE窗体。由于是在Oracle服务器上执行QBE查询,因此性能最优而且流量最低。用户能够提供简单的查询值,如JONES或100;能够包含字符串值通配符,如JON%;还包含比较操作符,如>, <, NOT, BETWEEN, IN等。 Oracle监控器 ——该组件能够监控您Direct Oracle Access程序的数据库访问行为。可以显示每个行为的SQL、变量、时间戳、逝去时间、网络统计表、数据库统计表和查询执行计划。这对于查找性能瓶颈非常有用,能够调整程序性能,解决程序错误。 警告和管道事件 ——Oracle Server为每个事件处理提供dbms_alert和dbms_pipe包。Direct Oracle Access中的TOracleEvent可以作为这些事件的接收器。TOracleEvent工作在您程序的后台线程中,可以向类似对象事件传播数据库事件。这些事件的发生可以同步或异步于您程序的主线程。 SQL脚本 ——如果需要执行多条数据定义语言(DDL)语句,例如运行您程序的数据库安装部分,就可以使用TOracleScript组件。该组件含有一个专有编辑器,可以开发脚本和单个命令。可扩展的脚本语言遵循基本的SQL*Plus语法,并支持所有SQL语句。除此,该语言还支持变量置换,从而令您的脚本可定制。 高级队列 ——TOracleQueue组件可以重发利用Oracle8的高级队列选项。该组件封装了DBMS_AQ包的基本功能。它提供了便利操作,能够将消息加入队列或者将其从队列中提取出来。消息提取操作是在您程序的后台线程中完成的,而线程模式中生成的事件可以同步或异步于您程序的主线程。 会话池 ——在服务器程序中,需要经常创建会话以处理来自客户端程序的请求,这对于连接池的使用非常有帮助。如果没有池的概念,那么每次请求都将引起数据库登录和离开行为。使用TOracleSessionPool组件后,您可以维护一个数据库会话池,能够被不同请求使用或重复使用。您可以定义池中会话的最大和最小数目,定义池中idle会话的TimeOut行为,并可以预先设置用户名、密码和数据库。
相当不错的技术文档。 前言 1 第一章 oracle存储过程概述 2 1.1 存储过程基本结构(PROCEDURE) 3 1.1.1创建存储过程 3 1.1.2 存储过程删除 5 1.1.3 调用存储过程 5 1.2存储函数(FUNCTIONE) 6 1.2.1 创建存储函数 6 1.2.2 删除存储函数 7 1.3 包(package) 7 1.3.1 包的基本结构 7 1.3.2 包的创建 7 1.3.3 调用包中元素 9 1.3.4 包的修改和删除 9 第二章 oracle存储过程基础――PL/SQL 9 2.1 pl/sql基础 9 2.1.1 PL/SQL简介 9 2.1.2 一个简单的PL/SQL块 10 2.1.3 PL/SQL流程控制 13 2.2 游标(CURSOR) 17 2.2.1 游标的概念 18 2.2.2 游标的属性 18 2.2.3 游标中FOR循环的使用 20 2.2.4 带参数游标的使用方法 20 2.3 动态SQL语句 21 2.4 例外处理 22 2.5 一个完整的PL/SQL实例 24 第三章 oracle存储过程讨论 25 3.1 函数(FUNCTION) 26 3.1.1 用户函数创建,编译,删除 26 3.1.2 参数传递 27 3.2 存储过程 28 3.3 包 29 3.3.1 创建包 30 3.3.2 删除包 30 3.3.3 应用举例 31 3.4 UTL_FILE包的使用 33 3.4.1 文件控制: 34 3.4.2 文件输出: 34 3.4.3 文件输入: 35 3.4.4 应用举例 35 4.1 Wrapper应用 35 第四章 存储过程运行环境 36 4.1 存储过程以及PL/SQL执行环境 36 4.1.1 SQL*PLUS环境 36 4.1.2 Pro*c预编译环境 37 4.2 存储过程调试方法 38 4.2.1 SQL*PLUS环境中显示错误 38 4.2.2 插入测试表调试存储过程 38 4.2.3 DBMS_OUTPUT系统内置包 39 附录一 sql*plus工具 40 附录1.1 sql*plus启动和关闭 41 附录1.2 sql*plus 环境设置 42 附录1.3 设置环境参数 42 附录1.4 sqlplus命令的执行 43 附录1.5 sql*plus编辑命令 43

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值