Oracle
pursuer211
这个作者很懒,什么都没留下…
展开
-
DBMS_XPLAN包中函数的使用
dbms_xplan包用于展示执行计划。执行计划存储在计划表中、库缓存或AWR中,dbms_xplan包中的函数能从这些地方将执行计划取出,格式化之后展示给我们。与手工查询(即自定义查询语句)执行计划表相比,使用DBMS_XPLAN通常可以获得更好查询结果,因为它的查询语法比较简单,还提供多种输出格式。1、函数语法 调用DBMS_XPLAN函数最简单的方法是使用SELECT *原创 2013-12-29 15:16:09 · 1001 阅读 · 0 评论 -
FORALL使用--insert/delete/update操作的批绑定Bulk Binding
Forall是Oracle在PL/SQL中提供的一种批量处理语法。它提供了比传统for loop更好的处理性能优势。两者的差异主要体现在处理引擎上下文切换上的性能损耗优势。在PL/SQL语句中出现语句,PL/SQL引擎会将SQL语句传递转给SQL引擎进行处理。SQL引擎处理后再将结果返回给PL/SQL引擎。这个过程我们称之为上下文切换(context switch)。在for语句运行的时候,伴原创 2014-01-06 19:05:18 · 4421 阅读 · 0 评论 -
Oracle的bulk collect使用
bulk collect的作用是将检索结果批量的、一次性的赋给集合变量,并把结果集从PL/SQL引擎传给SQL引擎。与每次获取一条数据,并每次都要将结果由PL/SQL引擎传给SQL引擎相比,可以很大程度上的节省开销。bulk collect可以和select into、fetch into、returning into一起使用,使用bulk collect后,into后的变量必须是集合型的。原创 2014-01-10 23:12:40 · 1332 阅读 · 0 评论 -
Oracle面向对象编程OOP
自Oracle9i以来,Oracle就不再是单纯的关系数据库管理系统,它在关系数据库模型的基础上,添加了一系列面向对象的特性。Oracle9i就号称面向对象数据库。Oracle的对象体系遵从面向对象思想的基本特征,许多概念同C++,JAVA中类似,具有继承,重载,多态等特征,但又有自己的特点。 下面详细介绍下Oracle面向对象编程。1 面向对象类型TYPE1.1 面向原创 2014-01-04 16:57:03 · 3437 阅读 · 1 评论 -
B*树索引——Oracle的默认索引结构
1、B*树索引1.1 概述 B*树索引是Oracle默认的索引结构。我们使用CREATE INDEX语句创建索引时,创建的就是B*树索引。B*树索引的结构一个二叉树,由根节点(root node)、分支部分(branch node)和叶子节点(leaf node)构成。 提示:B*树的B是单词Balanced的缩写,平衡之意。 ● 根节点:包含指向原创 2014-01-14 10:58:29 · 8781 阅读 · 2 评论 -
Oracle的动态SQL
1、概述 为了了解动态SQL,需要先明白Oracle对SQL语句的处理过程(请参考《Oracle对SQL语句处理过程》),静态SQL是在解析(Parse)阶段就确定的SQL,而动态的SQL则是在编译阶段不能确定的,只有在关联绑定变量之后才能确定的SQL。为什么要使用动态的SQL?我认为主要有两点: ① 增加灵活性。动态SQL可以使用using子句实现变量绑定,可以通原创 2014-01-12 01:33:32 · 1065 阅读 · 1 评论 -
Oracle对SQL语句处理过程
Oracle对SQL语句处理过程如下图所示: 通过上图可知,一个SQL语句处理的过程如下: 1)创建游标。 游标是内存中的一块区域用于保存当前的SQL语句的定义信息。 2)检查缓存。 每提交一个SQL语句的执行请求,Oracle都会向共享池(shared pool)的SQL Area中检索原创 2014-01-12 00:15:14 · 1042 阅读 · 0 评论 -
Oracle NOCOPY使用
PLSQL运行引擎在存储过程和函数之间传参有2种方法:传值和传引用 默认情况,OUT和IN OUT参数通过传值方式传递,IN参数是传引用方式。程序执行前IN OUT参数的实际值将被复制给形参。程序执行中间,临时变量保存参数的输出值。如果程序正常退出,这些值将被复制回原参数。如果程序异常退出,那么原参数值将不会改变。当IN OUT参数为大数据结构,诸如:集合、记录、对象类型实例转载 2014-01-11 15:18:59 · 1802 阅读 · 0 评论 -
Oracle 10g版本计划表PLAN_TABLE列的说明
下面是Oracle 10g及以后版本计划表PLAN_TABLE各列的说明,引自《Oracle性能优化求生指南》:STATEMENT_ID由EXPLAIN PLAN的SET STATEMENT_Id子句提供的SQL语句的唯一标识符PLAN_ID执行计划在全局表PLAN_TABLE中的唯一标识符,通常依靠序列ORA_P转载 2013-12-27 23:42:26 · 1380 阅读 · 0 评论 -
PLSQL无法连Oracle 11g接数据库--问题解决
问题说明: 本人在PC机上安装了Oracle 11g R2版本的数据库服务,通过PL/SQL连接数据库时总是无法连接,下面具体说明下安装环境。 PC操作系统: Window7 (64bit) Oracle服务器版本:Oracle 11g R2 ((安装目录:D:\oracle\)(64bit) PL/SQL版本:PL SQL 10.0 在配置好oracle的tnsna原创 2013-12-27 11:23:12 · 1413 阅读 · 0 评论 -
Oracle之Chr函数返回
转自:http://blog.csdn.net/zanbiyajj/article/details/7752381Chr函数 返回:返回 String,其中包含有与指定的字符代码相关的字符。比如:declare begin dbms_output.put_line('换行: '||CHR(10)||'第二行');end;输出结果:换行:第二行下面列出了一些ASCII码为转载 2014-01-11 00:12:21 · 1876 阅读 · 0 评论 -
RETURNING into用法
1、概述returning...into...和insert/upadate/delete语句一起使用,用于赋予指定列的值给相应变量,类似于select...into...语句。returning...into...在insert、update和delete语句中返回的结果是有区别,其中: 1) delete语句:returning...into...返回的是delete之前的结果;原创 2014-01-10 02:12:51 · 2385 阅读 · 1 评论 -
Oracle定义数据类型Type
oracle提供自定义类型功能,用户可以根据自己的情况定义记录数据类型(Record)和记录表类型(Table),其中记录数据类型Record存储是一条记录,记录表类型Table用来存储多条记录。如果记录数据类型Record是一维数组的话,记录表类型Table就是二维数组。 自定义类型有两种写法:TYPE...IS和CREATE TYPE,下面分别介绍: TYPE IS定义原创 2014-01-04 17:04:09 · 1899 阅读 · 0 评论 -
DBMS_UTILITY.get_time——比较时间差
转自:http://usa2288.blog.sohu.com/139261013.htmlDBMS_UTILITY.get_time主要用于比较时间差,精确到毫秒,就是秒后面2位小数。如果是TO_CHAR(SYSDATE,'SSSSS')单纯输出的是秒,如果超过的话,则这个秒是按照四舍五入表示的,例如是5.6秒,你看到的就是6秒。 秒 = DBMS_UTILITY.get_转载 2014-01-06 22:48:25 · 2324 阅读 · 1 评论 -
ORA-06531:Reference to uninitialized collection 问题解决
错误信息:ORA-06531:Reference to uninitialized collection错误SQL代码:declare TYPE t_student_var IS TABLE OF VARCHAR2(100); v_tbl_name t_student_var;begin select name into v_tbl_name(1) fr原创 2014-01-02 13:41:37 · 5075 阅读 · 0 评论 -
tkprof命令格式化分析跟踪文件
Tracing跟踪文件tkprof命令用是把跟踪文件格式原创 2013-12-30 21:51:57 · 1143 阅读 · 0 评论 -
USERENV()用法
USERENV(OPTION) 返回当前的会话信息. OPTION='SID' OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE. OPTION='LANGUAGE'返回数据库的字符集. OPTION='SESSIONID'为当前会话标识符. OPTION='ENTRYID'返回可审计的会话标识符.转载 2014-01-01 12:46:51 · 1148 阅读 · 0 评论 -
评估和提升oracle数据库性能的主要工具
SQL是一种非过程化的语言,我们定义的sql语句仅仅告诉数据库我们需要什么样的数据,并没有告诉数据库如何获取这些数据。而执行计划正式数据库获取这些数据的方式和步骤。在日常开发中,为了优化数据库的需要,我们常常需要获取sql语句的执行计划,通过它判断语句执行性能的高低,进而进行优化。那么怎么获得执行计划呢?1、获取SQL执行计划的方式 使用explain plan工具 查询动态性能视图原创 2013-12-29 15:22:40 · 1841 阅读 · 0 评论