![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL/PLSQL优化
文章平均质量分 94
cooperSun
这个作者很懒,什么都没留下…
展开
-
oracle提高查询效率
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那转载 2014-09-02 17:21:50 · 729 阅读 · 0 评论 -
ORACLE触发器详解
本篇主要内容如下:8.1 触发器类型8.1.1 DML触发器8.1.2 替代触发器8.1.3 系统触发器8.2 创建触发器8.2.1 触发器触发次序8.2.2 创建DML触发器8.2.3 创建替代(INSTEAD OF)触发器8.2.3 创建系统事件触发器8.2.4 系统触发器事件属性8.2.5 使用触发器谓词8.2.6 重新编译触发器8.3 删转载 2015-11-12 11:06:39 · 470 阅读 · 0 评论 -
PL/SQL 记录集合IS TABLE OF的使用
在PL/SQL代码块中使用select into 赋值的话,有可能返回的是一个结果集。此时,如果使用基本类型或自定义的记录类型,将会报错。因此,需要定义一个变量,是某种类型的集合。下面以一个基于表的行类型的集合为例简单介绍一下(相信基本类型同理吧)。转载 2014-09-02 15:40:32 · 2343 阅读 · 0 评论 -
PL/SQL开发中动态SQL的使用与过程分页
在Oracle数据库开发PL/SQL块中我们使用的SQL分为:静态SQL语句和动态SQL语句。所谓静态SQL指在PL/SQL块中使用的SQL语句在编译时是明确的,执行的是确定对象。而动态SQL是指在PL/SQL块编译时SQL语句是不确定的,如根据用户输入的参数的不同而执行不同的操作。编译程序对动态语句部分不进行处理,只是在程序运行时动态地创建语句、对语句进行语法分析并执行该语句。转载 2014-09-03 15:14:26 · 695 阅读 · 0 评论 -
ORACLE:RETURNING 子句
RETURNING 自己通常结合DML 语句使用。(INSERT UPDATE DELETE)使用方法:UPDATE table_name SET expr1RETURNING column_nameINTO xxxINSERT: 返回的是添加后的值UPDATE:返回时更新后的值DELETE:返回删除前的值RETURNING 可以再sqlplus转载 2014-09-02 11:04:05 · 2087 阅读 · 0 评论 -
ORACLE批量绑定FORALL与BULK COLLECT
FORALL与BULK COLLECT的使用方法:1.使用FORALL比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换。 2.使用BLUK COLLECT一次取出一个数据集合,比用游标条取数据效率高,尤其是在网络不大好的情况下。但BLUK COLLECT需要大量内存。转载 2014-09-02 15:45:17 · 623 阅读 · 0 评论 -
Oracle执行计划详解
简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容。 并有总结和概述,便于理解与记忆!+++目录--- 一.相关的概念 Rowid的概念 Recursive Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Ta转载 2014-09-12 17:20:48 · 495 阅读 · 0 评论 -
执行计划执行顺序
阅读oracle执行计划的方法: 先从最开头一直往右看,直到看到最右边的并列的地方,对于不并列的,靠右的先执行:对于并列的,靠上的先执行。 即并列的缩进块,从上往下执行,非并列的缩进块,从下往上执行。如下示例:Execution Plan----------------------------------------------------------转载 2014-09-12 17:46:50 · 870 阅读 · 0 评论 -
oracle 管道化表函数(Pipelined Table)
在实际的应用中,为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成。REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化。 9i 通过引入的管道化表函数纠正了后一种情况。表函数是返回整个行的集(通常作为一个集合)的函数,可以直接从 SQL 语句中进行查询,就好像它是一个真正的数据库表一样。管道化表函转载 2014-09-02 16:52:24 · 1244 阅读 · 0 评论 -
Oracle硬解析与软解析
Oracle 硬解析与软解析是我们经常遇到的问题,什么情况会产生硬解析,什么情况产生软解析,又当如何避免硬解析?下面的描述将给出软硬解析的产生,以及硬解析的弊端和如何避免硬解析的产生。 一、SQL语句的执行过程 当发布一条SQL或PL/SQL命令时,Oracle会自动寻找该命令是否存在于共享池中来决定对当前的语句使用硬解析或软解析。 通常情况下,SQL语转载 2014-09-10 17:01:44 · 630 阅读 · 0 评论 -
oracle 索引
在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。 对于数据库来说,索引是一个必选项,但对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分。 索引分类:逻辑分类single column or concatenated转载 2014-09-10 11:03:25 · 464 阅读 · 0 评论 -
Oracle动态性能表-(5)-V$SQL,V$SQL_PLAN
(1) v$sql 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1)。如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息。例1:这里介绍以下child cursoruser A: select * from tbluser B: select * from tbl大家认为这两条语句是不是一样的转载 2014-09-19 15:34:07 · 600 阅读 · 0 评论 -
Oracle动态性能表-(4)-V$SESSTAT
按照OracleOnlineBook中的描述,v$sesstat存储session从login到logout的详细资源使用统计。 类似于v$sysstat,该视图存储下列类别的统计:l 事件发生次数的统计,如用户提交数。l 数据产生,存取或者操作的total列(如:redo size)l 执行操作所花费的时间累积,例如session转载 2014-09-19 15:35:18 · 560 阅读 · 0 评论 -
Oracle动态性能表-(3)-V$SYSSTAT
按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。类似于v$sesstat,该视图存储下列的统计信息:1>.事件发生次数的统计(如:user commits)2>.数据产生,存取或者操作的total列(如:redo size)3>.如果TIMED_STATISTICS值为true,则统转载 2014-09-19 15:32:20 · 505 阅读 · 0 评论 -
Oracle动态性能表-(2)-V$SQLTEXT
本视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。V$SQLTEXT中的常用列HASH_VALUE:SQL语句的Hash值ADDRESS:sql语句在SGA中的地址SQL_TEXT:SQL文本。PIECE:SQL语句块的序号V$SQLTEXT中的连接列Column View Joine转载 2014-09-19 15:33:14 · 440 阅读 · 0 评论 -
Oracle动态性能表(1)-V$SQLAREA
本视图持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列。本视图在分析SQL语句资源使用方面非常重要。v$sql、v$sqlarea 、v$sqltext这三个视图都可以用于查询共享池中已经解析过的SQL语句及其相关信息。V$SQL中列出了共享SQL区中所有语句的信息,它不包含GROUP BY字句,并且为每一条SQL语句中转载 2014-09-19 15:31:21 · 593 阅读 · 0 评论 -
Oracle 11g中CTE应用示例
关于SQL SERVER中的CTE中的CTE应用,请看这里:http://blog.csdn.net/downmoon/archive/2009/10/23/4715814.aspx其实,ORACLE的CTE语法完全一样,看示例:一、创建示例数据表如下:[sql] view plaincopyprint?View Code declare转载 2015-11-13 15:12:15 · 1520 阅读 · 0 评论