Oracle PLSQL 优化与调整 – PLSQL Native Compilation 说明

合集下载

PLSQLDeveloper连接Oracle数据库详细配置方法

PLSQLDeveloper连接Oracle数据库详细配置方法

PLSQLDeveloper连接Oracle数据库详细配置⽅法 近段时间很多⽹友提出监听配置相关问题,客户终端(Client)⽆法连接服务器端(Server)。

本⽂现对监听配置作⼀简单介绍,给出PL/SQL Developer 连接Oracle数据库详细配置⽅法,并提出⼀些客户终端⽆法连接服务器端的解决思路,愿对⼴⼤⽹友与读者有⼀些帮助。

⼀、监听器(LISTENER)监听器是Oracle基于服务器端的⼀种⽹络服务,主要⽤于监听客户端向数据库服务器端提出的连接请求。

既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进⾏监听器的设置也是在数据库服务器端完成的。

⼆、本地服务名(Tnsname)Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进⾏合法检查,如果连接请求有效,则进⾏连接,否则拒绝该连接。

本地服务名是Oracle客户端⽹络配置的⼀种,另外还有Oracle名字服务器(Oracle Names Server)等。

Oracle常⽤的客户端配置就是采⽤的本地服务名,本⽂中介绍的也主要是基于本地服务名的配置。

三、Oracle⽹络连接配置⽅法配置Oracle服务器端与客户端都可以在其⾃带的图形化Oracle⽹络管理器(Oracle Net Manager)⾥完成(强烈建议在这个图形化的⼯具下完成Oracle服务端或客户端的配置)。

Windows下启动Net Manager图形窗⼝如下图⽰:1、 Oracle监听器配置(LISTENER)如上图⽰,选中树形⽬录中监听程序项,再点击左上侧“+”按钮添加监听程序,点击监听程序⽬录,默认新加的监听器名称是LISTENER(该名称也可以由任意合法字符命名)。

选中该名称,选中窗⼝右侧栏下拉选项中的“监听位置”,点击添加地址按钮。

在出现的⽹络地址栏的协议下拉选项中选中“TCP/IP”,主机⽂本框中输⼊主机名称或IP地址(如果主机即⽤作服务端也作为客户端,输⼊两项之⼀均有效;如果主机作为服务端并需要通过⽹络连接,建议输⼊IP地址),端⼝⽂本框中输⼊数字端⼝,默认是1521,也可以⾃定义任意有效数字端⼝。

Oracle PLSQL变量的声明

Oracle  PLSQL变量的声明

Oracle PL/SQL变量的声明可以使用下面两种语法声明PL/SQL变量:variable_name data_type [ [NOT NULL]:=default_value_expression];variable_name data_type [ [NOT NULL] DEFAULT default_value_expression];变量名V ARIABLE_NAME可以是任何合法的PL/SQL标识符,合法的PL/SQL标识符必须满足如下条件:●长度不能超过30个字符,而且中间不能有空格。

●由字母、0到9的数字、下划线“_”、美元符号“$”以及符号“#”组成。

●必须以字母开始。

●不能使用PL/SQL或SQL中的关键字。

例如,BEGIN、END不能作为变量名,因为它在PL/SQL程序中有特殊的意义,表示块的开始和结束。

可以在SQL*Plus使用如下命令获得SQL和PL/SQL中的关键字:help reserved words变量类型DATA_TYPE必须是合法的SQL或PL/SQL数据类型,变量的类型决定了其中存储的数据类型。

如果变量只能存储一个单独的值,则该变量称为标量变量。

如果变量中可以存储多个值(如表中一行记录),则该变量称为复合类型的变量。

标量变量所使用的数据类型包括字符、数字、日期和布尔类型等,标量变量所使用数据类型见表6-1所示。

表6-1 基本数据类型类型说明Boolean 布尔值,包括true、false和nullBinary_integer -2,247483,648和2,247483,648之间的整数Pls_integer 类似于binary_integer,但是计算速度更快Number 数字型Int 整数型Pls_integer 整数型,产生溢出时出现错误Binary_integer 整数型,表示带符号的整数Char 定长字符型,最大255个字符Varchar2 变长字符型,最大2000个字符Date 日期型Long 变长字符型,最长2GBNOT NULL表示变量必须是非空的,需要指定初始值。

【Oracle】PLSQL如何更新、提交数据库中数据

【Oracle】PLSQL如何更新、提交数据库中数据

【Oracle】PLSQL如何更新、提交数据库中数据
转⾄:https://blog.csdn.net/Bee_AI/article/details/89279612
Oracle更新单表数据时,⼀般使⽤SELECT……FOR UPDATE语句,这条语句执⾏后,既可以⼿动在查询出来的数据中修改,⼜可以使⽤
UPDATE语句修改。

Step1:执⾏语句1
语句1:SELECT * FROM table_name t WHERE t.field1 = field1_key; --查询该字段所在记录的所有信息

Step2:执⾏语句2
语句2:SELECT * FROM table_name FOR UPDATE; --在FOR UPDATE这个事务执⾏完毕之前,该表中的数据时⽆法被更新的,只有在
FOR UPDATE执⾏之后才能解锁该表

Step3:⼿动进⾏解锁

Step4:⼿动修改数据或者执⾏语句3(UPDATE语句)进⾏更新数据
语句3:UPDATE table_name t SET t.field2 = field2_key WHERE t.field1 = field1_key

Step5:⼿动提交当前更新事务或者执⾏语句4(COMMIT语句)进⾏更新数据
语句4:COMMIT ;

Oracle_PLSQL教程-第二章

Oracle_PLSQL教程-第二章

翻译:陈拓 chentuo@2006 年 6 月16 日创建过程Copyright © Oracle Corporation, 2001. All rights reserved.进度表: 时间 主题40 分钟 讲演25 分钟 练习65 分钟 总共目标完成本课程后, 您应当能够:• 描述过程• 创建过程• 形式参数和实际参数之间的区别• 列举不同参数模式的特性• 创建带参数的过程• 调用过程• 在过程中处理异常• 删除过程2­2 Copyright © Oracle Corporation, 2001. All rights reserved.本课目标在本课中,你将学习创建、执行和删除过程。

什么是过程?• 过程是执行一个动作的子程序的一种类型• 过程可以作为一个方案对象被存储在数据库中,用于重 复执行2­3 Copyright © Oracle Corporation, 2001. All rights reserved.过程的定义过程是一个命名的 PL/SQL 块,它能够接收参数 (在英文中 parameters 有时也称 为 arguments),并且被调用,一般而言,你使用一个过程来完成一个动作。

一个过程有 一个头,一个声明部分,一个执行部分和一个可选的异常处理部分。

一个过程可以被编译并且被作为方案对象存储在数据库中。

过程提高可重用性和可维护性。

当可用时,他们可以在应用程序中被多次使用。

如 果需求改变了,仅仅过程序要被更新,应用程序可以不受影响。

2­4 Copyright © Oracle Corporation, 2001. All rights reserved.创建过程的语法• REPLACE 选项指示如果过程存在,它将被删除并且用语句创建的新版本代替• PL/SQL 块,既可以用 BEGIN 开始也可以用局部变量的声明开始,既可以用 END 结束也可以用 ENDprocedure_name 结束CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter1 [mode1] datatype1, parameter2 [mode2] datatype2, . . .)] IS|AS PL/SQL Block;CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter1 [mode1] datatype1, parameter2 [mode2] datatype2, . . .)] IS|AS PL/SQL Block; 创建过程的语法语法定义 参数说明 procedure_name过程的名字 parameterPL/SQL 变量的名字,依据所使用的模式,参数值由过程被 传递到主叫环境或反之,或两者都有 mode参数的类型:IN (默认)、OUT 、IN OUT Data type参数的数据类型 ­ 可以是任何 PL/SQL 数据类型。

Oracle_PLSQL教程-第七章

Oracle_PLSQL教程-第七章
调用者是一个匿名 PL/SQL 块,操作根据当前用户的权限被执行;如果调用者是存储过程,操 作根据存储过程的所有者执行。
使用这个包执行 DDL 语句可能导致死锁。大多数类似这样的原因是包被用于删除一个你 还正在使用中的过程。
DBMS_SQL 包的组成部分 DBMS_SQL 包使用动态 SQL 访问数据库。
Copyright © Oracle Corporation, 2001. All rights reserved.
用本地动态 SQL (动态 SQL) 你可以用动态 SQL 写 PL/SQL 块。动态 SQL 语句不能嵌入在你的源程序中,但可以存
储在输入到程序或写在程序的字符串中。换句话说,SQL 语句可以在运行时用变量被动态创建。 例如,你可以用动态 SQL 创建对一个表操作的过程,但表的名字直到运行时还不知道,或者 写并且执行一个数据定义语言 (DDL) 语句 (例如 CREATE TABLE),一个数据控制语句 (例 如 GRANT),或一个会话控制语句 (例如 ALTER SESSION),在 PL/SQL 中,这些语句不 能被静态地执行。
动态 DML 的过程 1. 用 OPEN_CURSOR 在内存中建立一个区域来处理 SQL 语句。 2. 用 PARSE 确定 SQL 语句的建立正确性。 3. 用 EXECUTE 函数运行 SQL 语句。该函数返回被处理的行数。 4. 用 CLOSE_CURSOR 关闭光标。
Oracle PL/SQL 编程 7­7
在创建你的应用程序时你可以利用这些包提供的功能,你也可以只是想在创建你自己的存储过 程时使用这些包的思想。
大多数标准的包可以运行 catproc.sql 来创建。
catproc.sql 在 ORACLE_HOME\RDBMS\ADMIN 目录下。

plsql简介

plsql简介

plsql简介⼀、pl/sql 是什么pl/sql(procedural language/sql)是oracle在标准的sql语⾔上的扩展。

pl/sql不仅允许嵌⼊sql语⾔,还可以定义变量和常量,允许使⽤条件语句和循环语句,允许使⽤例外处理各种错误,这样使得它的功能变得更加强⼤。

⼆、为什么要学pl/sql1.提⾼应⽤程序的运⾏性能2.模块化的设计思想(分页的过程,订单的过程,转账的过程。

)3.减少⽹络传输量4.提⾼安全性(sql会包括表名,有时还可能有密码,传输的时候会泄露。

PL/SQL就不会)三、Oracle为什么在PL/SQL developer执⾏很快,⽤c# oracleclient执⾏就慢因为PL/SQL这门语⾔是专门⽤于在各种环境下对Oracle数据库进⾏访问。

由于该语⾔集成于数据库服务器中,所以PL/SQL代码可以对数据进⾏快速⾼效的处理。

⽽c#语⾔是微软的产品,它在连接ORACLE的时候先存到“连接池”中,所以第⼀次会慢点,但是当你的Web程序没有重起的时候,以后的速度就不会慢了。

四、使⽤pl/sql的缺点移植性不好(换数据库就⽤不了)五、pl/sql理解1)、存储过程、函数、触发器是pl/sql编写的2)、存储过程、函数、触发器是存在oracle中的3)、pl/sql是⾮常强⼤的数据库过程语⾔4)、存储过程、函数可以在java中调⽤六、编写⼀个存储过程,该过程可以向某表中添加记录。

1、创建⼀张简单的表CREATE TABLE mytest(username VARCHAR2(30),pwd VARCHAR2(30));2、创建过程(replace:表⽰如果有insert_proc,就替换)CREATE OR REPLACE PROCEDURE insert_proc ISBEGININSERT INTO mytest VALUES('林计钦', '123456');END;/3、如何查看错误信息:show error;注意要在命令窗⼝执⾏4、如何调⽤该过程:exec 过程名(参数值1,参数值2...);eg、exec insert_proc;注意要在命令窗⼝执⾏。

oracle_plsql语句大全

sql语句的编程手册SQL PLUS一、SQL PLUS1 引言SQL命令以下17个是作为语句开头的关键字:alter drop revokeaudit grant rollback*commit* insert selectcomment lock updatecreate noaudit validatedelete rename这些命令必须以“;”结尾带*命令句尾不必加分号,并且不存入SQL缓存区。

SQL中没有的SQL*PLUS命令这些命令不存入SQL缓存区@ define pause# del quit$ describe remark/ disconnect runaccept document saveappend edit setbreak exit showbtitle get spoolchange help sqlplusclear host startcolumn input timingcompute list ttitleconnect newpage undefinecopy---------2 数据库查询数据字典TAB 用户创建的所有基表、视图和同义词清单DTAB 构成数据字典的所有表COL 用户创建的基表的所有列定义的清单CA TALOG 用户可存取的所有基表清单select * from tab;describe命令描述基表的结构信息describe deptselect *from emp;select empno,ename,jobfrom emp;select * from deptorder by deptno desc;逻辑运算符= !=或<> > >= < <=inbetween value1 and value2like%_in nullnotno in,is not null谓词in和not in有哪些职员和分析员select ename,jobfrom empwhere job in ('clerk','analyst');select ename,jobfrom empwhere job not in ('clerk','analyst');谓词between和not between哪些雇员的工资在2000和3000之间select ename,job,sal from empwhere sal between 2000 and 3000;select ename,job,sal from empwhere sal not between 2000 and 3000;谓词like,not likeselect ename,deptno from empwhere ename like 'S%';(以字母S开头)select ename,deptno from empwhere ename like '%K';(以K结尾)select ename,deptno from empwhere ename like 'W___';(以W开头,后面仅有三个字母)select ename,job from empwhere job not like 'sales%';(哪些雇员的工种名不以sales开头)谓词is null,is not null没有奖金的雇员(即commision为null)select ename,job from empwhere comm is null;select ename,job from empwhere comm is not null;多条件查询select ename,jobfrom empwhere deptno=20and job!='clerk';表达式+ - * /算术表达式选择奖金高于其工资的5%的雇员select ename,sal,comm,comm/sal from emp where comm>.05*salorder by comm/sal desc;日期型数据的运算add two days to 6-Mar-876-Mar-87 + 2 = 8-Mar-87add two hours to 6-Mar-876-Mar-87 + 2/24 = 6-Mar-87 and 2hrsadd 15 seconds to 6-Mar-876-Mar-87 + 15/(24*60*60) = 6-Mar-87 and 15 secs列名的别名select ename employee from empwhere deptno=10;(别名:employee)select ename,sal,comm,comm/sal "C/S RATIO" from empwhere comm>.05*salorder by comm/sal desc;SQL命令的编辑list or l 显示缓冲区的内容list 4 显示当前SQL命令的第4行,并把第4行作为当前行,在该行号后面有个*。

oracle PLSQL 中常量和变量的声明

一、常用数据类型:Number:数字类型Int:整数型Pls_integer:整数型,产生溢出的错误Binary_integer:整数型Char:定长字符,最长255个字符Varchar2:变长字符,最长2000个字符Long:变长字符,最长2GBDate:日期型Boolean:布尔型二、定义常量格式:常量名 constant 数据类型标识符 [not null] := 值例 : iCount constant Int not null:=200说明: 定义常量iCount,值为200;三、定义基本数据类型变量格式:变量名类型标识符 [not null] := 值例:sex Boolean not null :=0;说明:定义变量sex 值为0;四、复合数据类型变量1、使用%TYPE定义变量说明:这个型式是为了让变量的数据类型与表中的数据类型一致的,定义好以后,表中的数据类型改变,这个变量的数据类型也同时改变;格式:变量名用户名.表名.字段名%TYPE;例 : sex SCOTT.Tdetails.SEX%TYPE;说明:sex变量就与scott用户下的Tdetails表中的sex字段的类型一致;2、记录类型变量说明:将多个数据类型捆绑在一起的数据类型格式:TYPE 变量名 IS RECORD(变量名1 基本数据类型,变量名2 基本数据类型,……);例:TYPE tRecords IS RECORD(Name varchar2,Sex Boolean);使用这个变量的的方法: ttt tRecords;Select name,sex into ttt from classuser;这样就把classuser 表里的数据放到变量ttt中了.4、定义一维表类型数据DECLARE说明:相当于一维数组格式:TYPE 表类型 IS TABLE OF 类型 INDEX BY BINARY_INTEGER;例 : TYPE score IS TABLE OF INT(3) INDEX BY BINARY_INTEGER;定义了一个整数数组容量为3;访问的时候用 score(1)=1;score(2)=2; ……。

Oracle_PLSQL教程-第八章

翻译:陈拓 chentuo@2006 年 6 月16 日操纵大对象Copyright © Oracle Corporation, 2001. All rights reserved.进度表: 时间 主题80 分钟 讲演40 分钟 练习120 分钟 总共目标完成本课程后, 您应当能够:• 比较和对比 LONG 和大对象 (LOB) 数据类型• 创建并维护 LOB 数据类型• 区分内部和外部大对象的区别• 使用 DBMS_LOB PL/SQL 包• 说明临时大对象的用途8­2 Copyright © Oracle Corporation, 2001. All rights reserved.本课目标数据库有用于存储大对象的 LONG。

可是,这种内建于数据库的机制不像在 Oracle8 中新 提供的大对象 (LOB) 数据类型那样好用。

本课叙述这种新的数据类型的特性,并与早期的数据 类型进行比较。

用例子介绍 LOB 类型的语法和使用。

注:LOB 是一种数据类型,不要与对象类型混淆。

什么是 LOB ?LOBs用于存储大的非结构化的数据,例如:文本、图象、电影和声音波形。

8­3 Copyright © Oracle Corporation, 2001. All rights reserved.概览一个LOB是一个用于存储象文本、图形图像、视频剪辑等等这样的大的、非结构化数据的 数据类型。

结构化的数据象客户的记录可能只有几百个字节,但即使很是少量的多媒体数据可能 就会是几千倍之大。

还有,多媒体数据可能驻留在操作系统文件上,这些文件需要从数据库中访 问。

有四种大对象数据类型:· BLOB 表示二进制大对象,例如一个视频剪辑。

· CLOB 表示一个字符大对象。

· NCLOB 表示一个多字节字符大对象。

· BFILE 表示一个存储在数据库外部的一个操作系统二进制文件。

PLSQL往Oracle数据库插入中文后变为问号 和 启动PLSQL时提示NLS_LANG在客户端不能确定的解决办法

PL/SQL向Oracle数据库输入中文后变为问号和启动PL/SQL时提示NLS_LANG在客户端不能确定的解决办法工作需要,最近在VM虚拟机里安装了Redhat Linux系统,并在Redhat里安装了Oracle10.5,接着在本地Win7系统里,通过安装Oracle Instant Client客户端和PL/SQL Developer工具,来访问Oracle进行SQL操作。

但一直遇到一个很奇怪的问题,通过PL/SQL Developer工具,不管是通过Insert into 插入的,或者通过菜单:工具-ODBC导入器导入的数据,只要包含中文的值,查询时都显示其变为“?”问号了(图1)。

图 1上网了解到这跟字符集有关,Oracle安装和导入数据时,需要Oracle的Server服务器、Client客户端以及安装环境三者的字符集编码一致,否则就会出现乱码问题。

如下图2所示,Oracle数据库的区域语言、字符集和安装环境的区域语言、字符集设置不一致,导致Oracle中文提示变为乱码:图 2通过语句:Select*from V$NLS_PARAMETERS where PARAMETER='NLS_CHARACTERSET';Select USERENV('LANGUAGE')from DUAL;可以查询到Oracle服务器正在使用是什么字符集;通过查找注册表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\里,NLS_LANG的具体键值即可知道客户端使用的字符集(图3)。

图 3一开始检查到Oracle服务端和客户端使用的字符集不一,于是将服务端的字符集改成ZHS16GBK以保持跟客户端的一致,但输入中文以后测试发现问题还是没解决。

继续上网寻找解决办法,了解到PL/SQL Developer可以设置使用的字符集,在菜单:工具-首选项里,可能因为版本问题找了一遍没发现,倒是发现在菜单:首选项-Oracle里有一项:检查客户及与服务器字符集是否匹配(图4),马上将其勾选,确定保存后退出PL/SQL Developer,再重新打开。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

David Dai 学习Oracle Blog:http://blog.csdn.net/tianlesoftware DBA1群:62697716(满); DBA2群:62697977(满); DBA3群:62697850; DBA 超级群:63306533(满) DBA4 群:83829929DBA5群:142216823

一. 相关概述 在之前的Bulk的那篇blog里提到了Oracle 的2个引擎:PL/SQL 引擎和SQL 引擎。 Oracle PL/SQL 优化与调整 -- Bulk 说明 http://blog.csdn.net/tianlesoftware/article/details/6578351

Oracle 使用2个引擎来执行SQL和代码块:SQL 引擎和PL/SQL 引擎, Oracle 使用这2个引擎来执行PL/SQL blocks 和 subprograms。那么在执行的时候,PL/SQL 引擎把DML 语句发送给SQL 引擎,然后由SQL 引擎执行,执行完毕后,SQL 引擎把结果集在发送给PL/SQL 引擎。因此在不同引擎之间切换就需要进行context switch,过多的context switch是会影响SQL性能的。而bulk 就是从减少引擎之间context switches的方式来提高sql的效率。 把对SQL 进行打包处理。

这里看另一个处理角度,使用PL/SQL Native Compilation(PL/SQL的本地编译)。 官网的链接如下: PL/SQL Native Compilation http://docs.oracle.com/cd/E11882_01/server.112/e23633/changes.htm#UPGRD12523

Compiling PL/SQL Units for Native Execution http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/tuning.htm

1.1 PL/SQL Native Compilation Starting with Oracle Database 10g Release 1 (10.1), the configuration of initialization parameters and the command setup for native compilation has been simplified. The important parameters now arePLSQL_NATIVE_LIBRARY_DIR and PLSQL_NATIVE_LIBRARY_SUBDIR_COUNT. The parameters related to the compiler, linker, and make utility have been made obsolete. Native compilation is turned on and off by a separate initialization parameter, PLSQL_CODE_TYPE, rather than being one of several options in the PLSQL_COMPILER_FLAGS parameter, which is now deprecated. The spnc_commands file, located in theORACLE_HOME/plsql directory, contains the commands and options for compiling and linking, rather than a makefile. --在Oracle 10g以后,配置native compilation 相对简单很多,最重要的参数是:PLSQL_NATIVE_LIBRARY_DIR 和 PLSQL_NATIVE_LIBRARY_SUBDIR_COUNT. 关联complier,linker 的参数已经过期。 Native compilation 通过一个PLSQL_CODE_TYPE 参考来控制启动和关闭。在10g 之前是使用David Dai 学习Oracle Blog:http://blog.csdn.net/tianlesoftware DBA1群:62697716(满); DBA2群:62697977(满); DBA3群:62697850; DBA 超级群:63306533(满) DBA4 群:83829929DBA5群:142216823

PLSQL_COMPILER_FLAGS参数。 spnc_commands 文件存在ORACLE_HOME/plsql目录下。如:

[oracle@rac1 plsql]$ pwd /u01/app/oracle/product/10.2.0/db_1/plsql [oracle@rac1 plsql]$ ls admin include lib mesg public spnc_commands [oracle@rac1 plsql]$ ll total 24 drwxr-x--- 2 oracle oinstall 4096 Mar 22 2011 admin drwxr-x--- 2 oracle oinstall 4096 Mar 22 2011 include drwxr-x--- 2 oracle oinstall 4096 May 12 2011 lib drwxr-x--- 2 oracle oinstall 4096 Mar 22 2011 mesg drwxr-x--- 2 oracle oinstall 4096 Mar 22 2011 public -rw-r--r-- 1 oracle oinstall 2065 Jun 3 2005 spnc_commands

另一篇官网也提到了Oracle 10g 开始,PLSQL_COMPILER_FLAGS参数被标记为Obsolete, 该参数由 PLSQL_CODE_TYPE 和PLSQL_DEBUG参数代替。具体参考: A Behavior Changes After Upgrading to Oracle Database 11gR2 http://docs.oracle.com/cd/E11882_01/server.112/e23633/changes.htm#UPGRD12573

1.2 Compiling PL/SQL Units for Native Execution You can usually speed up PL/SQL units by compiling them into native code (processor-dependent system code), which is stored in the SYSTEM tablespace. You can natively compile any PL/SQL unit of any type, including those that Oracle Database supplies. 可以将PL/SQL 单元编译到native code里,这样可以提高PL/SQL的速度,编译后的PL/SQL 单元存放在SYSTEM 表空间里。可以对任何PL/SQL unit 使用native compile。

Natively compiled program units work in all server environments, including shared server configuration (formerly called "multithreaded server") and Oracle Real Application Clusters (Oracle RAC). --Natively compiled 程序单元在所有服务端运行,包括shared server 配置和RAC 环境。 On most platforms, PL/SQL native compilation requires no special set-up or maintenance. On some platforms, the DBA might want to do some optional configuration. --在大多数平台下,PL/SQL native compilation 不需要特别的安装和维护,在少数平台下,DBA 可能需要做一些配置。 You can test to see how much performance gain you can get by enabling PL/SQL native compilation. David Dai 学习Oracle Blog:http://blog.csdn.net/tianlesoftware DBA1群:62697716(满); DBA2群:62697977(满); DBA3群:62697850; DBA 超级群:63306533(满) DBA4 群:83829929DBA5群:142216823

--可以启动PL/SQL native compilation 测试对性能的提升。 If you have determined that PL/SQL native compilation will provide significant performance gains in database operations, Oracle recommends compiling the entire database for native mode, which requires DBA privileges. This speeds up both your own code and calls to the PL/SQL packages that Oracle Database supplies. --如果提升较大,Oracle 建议使用native mode,这个需要DBA 权限。

Topics (1) Determining Whether to Use PL/SQL Native Compilation (2) How PL/SQL Native Compilation Works (3) Dependencies, Invalidation, and Revalidation (4) Setting Up a New Database for PL/SQL Native Compilation* (5) Compiling the Entire Database for PL/SQL Native or Interpreted Compilation* * Requires DBA privileges.

相关文档
最新文档