oracle执行计划
oracle执行计划相关概念 http://blog.csdn.net/wh62592855/archive/2009/11/06/4778343.aspx
1. 什么是执行计划?为什么要了解执行计划?
为了执行一条sql语句,oracle可能必须要执行某些步骤的操作,每一步骤可能是从数据库中物理检索数据行,或者用某种方法准备数据行,供发出语句的用户使用。Oracle用来执行语句的这些步骤的组合即为执行计划。执行计划是sql优化中最为复杂也是最为关键的部分,只有知道了oracle在内部到底是如何执行该sql语句后,才能知道优化器选择的执行计划是否为最优的。
2. 什么是共享sql语句?
oracle在对sql语句进行一次解析之后,会将该sql语句以及解析后得到的执行计划存放在内存中(位于系统全局区域SGA的共享池)。当执行一个sql语句时,如果该语句和之前的执行过的某一语句完全相同,并且之前执行的该语句与其执行计划仍然在内存中存在,则oralce就不需要再进行分析,直接就可以得到该语句的执行路径。
之前对ORACLE中的变量一直没个太清楚的认识,比如说使用:、&、&&、DEIFINE、VARIABLE……等等。今天正好闲下来,上网搜了搜相关的文章,汇总了一下,贴在这里,方便学习。
==================================================================================
在oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析.
一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的们闩(latch)资源,严重的影响系统的规模的扩大(即限制了系统的并发行),而且引起的问题不能通过增加内存条和cpu的数量来解决。之所以这样是因为门闩是为了顺序访问以及修改一些内存区域而设置的,这些内存区域是不能被同时修改。当一个sql语句提交后,oracle会首先检查一下共享缓冲池(shared pool)里有没有与之完全相同的语句,如果有的话只须执行软分析即可,否则就得进行硬分析。
而唯一使得oracle 能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是用于替代sql语句中的常量的替代变量。绑定变量能够使得每次提交的sql语句都完全一样。
1.
sqlplus中如何使用绑定变量,可以通过variable来定义
view plaincopy to clipboardprint?
SQL&
相关文档:
备注:
本博内容是承接上期内容的延续,由于内容过长,因此采用分段说明,以免大家看起来疲倦,若了解更多详细的安装流程,请继续关注本博。参照原版安装手册对照安装。
4.Configure Oracle Installation Owner Shell Limits
<1>配置limits.conf文件,红色标注为增加的配置内容。
[root@myli ......
1)不知大家是否喜欢使用‘NOT IN’这样的操作,如果是,那尽量使用(NOT) EXISTS 替代
2)在海量查询时尽量少用格式转换。
3)查询海量数据是,可以使用optimizer['ɔptimaizə] hints,例如/*+ORDERED */
尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。
不用NOT IN操作符,可以 ......
Oracle存储过程转成Sqlserver存储过程
1.日期转换
Oracle: TO_NUMBER(TO_CHAR(SYSDATE, 'YYYYMMDD'))
SqlServer:CAST(CONVERT(CHAR(8),GETDATE(), 112) AS INT)
注:其中‘YYYYMMDD’格式 对应112
2.ROWID转换
Oracle: ROWID
SqlServer: PRIMARY KEY(表主键)
3.ROWNUM ......
在oracle中处理日期大全
TO_DATE格式
Day:
dd number 12
dy abbreviated fri
day spelled out friday
ddspth spelled out, ordinal twelfth
Month:
mm number 03
mon abbreviated mar ......