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&
相关文档:
---创建表空间
create tablespace 表空间名字 datafile 'F:\oracle\product\10.2.0\oradata\wsdata\yss01.dbf' size 4096M;
alter tablespace 表空间名字 add datafile 'F:\oracle\product\10.2.0\oradata\wsdata\yss02.dbf' size 4096M;
alter tablespace 表空间名字 add datafile 'F:\oracle\product\10.2.0\oradata\w ......
oracle当多表union时遇到nvarchar2类型时报错 字符集不匹配
对使用nvarchar的地方,加上 to_char( nvarchar 的变量或字段 )
如:
select to_char(name),price from aa
union all
select to_char(name),price from bb
3张表aa,bb,cc都有 name price 字段 查询价格最高的前3位姓名
select * from(select to_ch ......
Oracle中使用IMP Dos命令 导入DIC数据库备份过程
1.使用具有建立表空间和用户权限的用户登录Oracle;
2.建立需要的表空间;
3.建立需要的用户(用户名,密码,默认表空间,临时表空间,权限)
4.打开DOS窗口,在命令行中输入IMP;
5.用第三步中建立好的用户登录数据库;
6.输入DIC文件的完全路径,按照提示选 ......
创建例程:
-NEW -SID sid | -SRVC 服务 [-INTPWD 口令] [-MAXUSERS 数量] [-STARTMODE a|m] [-PFILE 文件] [-TIMEOUT 秒]
编辑例程:
-EDIT -SID sid [-NEWSID sid] [-INTPWD 口令] [-STARTMODE auto|manual] [-PFILE 文件名] [-SHUTMODE a|i|n] [-SHUTTYPE srv ......