当前位置:首页 > 日记 > 正文

oracle性能优化系列学习二

oracle性能优化系列学习二
您正在学习的Oracle课程是:Oracle SQL性能优化系列。
4。选择最有效的表名称顺序(仅在基于规则的优化器中有效)

Oracle解析器按照从左到右的顺序,在from子句中的from子句中包含一个表,因此在表的结尾(基于表驱动表)将首先处理。在from子句包含多个表时,必须在表作为基础时选择表中的记录数。连接它们的表Oracle将使用排序和合并方法。首先,扫描第一个表(在最后一个语句的from子句中)和记录发送顺序,然后扫描第二个表(最后一个二米中的from子句),第二个从记录中的检索表,以及相应记录中的第一个表合并。

例如:

表16384记录表

表1对记录

选择TAB2作为基表(最好的方法)

select count(*)从表,对执行时间0.96秒

选择TAB2作为基表(差法)

select count(*)从表2,表执行时间26.09秒

如果有超过3个表连接查询,我们需要选择交叉表(交集表)作为基表,而交叉表是指其他表引用的表。

例如:

EMP表描述位置表和类别表的交集。

*选择

从位置L,

C类,

EMP E

在1000和2000之间的e.emp_no

和e.cat_no = c.cat_no

AND E.LOCN = L.LOCN

它比下面的SQL更有效

*选择

来自EMP E,

位置L,

C类

在e.cat_no = c.cat_no

和e.locn = l.locn

1000和2000之间e.emp_no

5中的连接顺序。WHERE子句。

Oracle使用自底向上序列解析WHERE子句。根据这个原则,表之间的连接必须写在其他条件之前。可以筛选出最多记录数的条件必须写在WHERE子句的结尾处。

例如:(低效,执行时间156.3秒)

选择…

从EMP E

萨尔50000

工作=经理

和25 <(从EMP中选择计数(*)

在MGR = e.empno);

(效率高,执行时间10.6秒)

选择…

从EMP E

其中25 <从EMP中选择计数(*)

在MGR = e.empno)

萨尔50000

工作=经理;

避免在6中使用*。SELECT子句。

当您想列出SELECT子句中的所有列时,使用动态SQL列引用*是一种方便的方法。不幸的是,这是一种非常低效的方式。事实上,Oracle在解析过程中,将*转换为所有的名称,这是通过查询数据字典来完成的,这意味着会有更多的时间消耗。

7。减少访问数据库的次数

在执行每个SQL语句时,Oracle在内部执行许多任务:解析SQL语句、估算索引利用率、绑定变量、读取数据块等。可以看出,减少访问数据库的数量实际上可以减少Oracle的工作量。

例如,有三种方法可以检索雇员人数等于0342或0291的雇员。

方法1(效率最高)

选择emp_name,工资等级

从EMP

在emp_no = 342;

选择emp_name,工资等级

从EMP

在emp_no = 291;

方法2(次低效率)

声明

光标C1(e_no号)

选择emp_name,工资等级

从EMP

在emp_no = e_no;

开始

打开C1(342);

把C1输入……,;

的…

打开C1(291);

把C1输入……,;

关闭C1;

结束;

方法3(高效率)

选择a.emp_name,A.SALARY,a.grade,

b.emp_name,B.SALARY,b.grade

来自EMP A,EMP B

在a.emp_no = 342

和b.emp_no = 291;

注意{ 1 } { 2 }下一页正在查看Oracle教程:Oracle SQL性能优化系列学习二:意大利:

在SQL*Plus复位arraysize参数、SQL Forms和PRO*C能提高检索的数据为每个数据库的访问量,并建议值是200。
{ 1 } { 2 }的最后一页

相关文章

的logitray.exe过程是什么文件logi

的logitray.exe过程是什么文件logi

查询,文件,过程,电脑软件,logitray,点评:logitray.exe是罗技罗技相机的辅助工具用于通过系统托盘图标方便获取其产品的诊断能力 进程文件:logitray或logitray.exe 进程名称:罗技Quickcam助理 过程类别:安全风险的过程 英文描述: logitray.exe…

mysql数字类型转换功能

mysql数字类型转换功能

数字,类型转换,功能,电脑软件,mysql,1。把int varchar经常使用concat功能,如连接(8、0),得到的字符串‘80后' 2、把varchar int铸(一个为符号)作为varchar类型字符串 概要:类型转换(如SQL Server)是类型参数略有不同:转换(xxx作为类型)、转换(xxx、type…

MySQL多表之间字段匹配的实现代码

MySQL多表之间字段匹配的实现代码

多表,字段,代码,电脑软件,MySQL,复制代码代码如下所示: SQL =美元美元帝国->查询(选择table.title,Lianxi,table.dizhi,table.id从表,表1,table1.sid像concat(% | ',表ID,| %)和表1。id =美元。navinfor {id}。); 当($ =帝国)>取($ SQL) { $标题= r {标题}; …

如何在WIN7系统歌体变化(一个很好的

如何在WIN7系统歌体变化(一个很好的

测试方法,系统,很好,如何在,电脑软件,点评:很多朋友不知道如何改变了Win7系统的歌。其实方法很简单。有一个好办法来做这件事。 1 >首先安装需要替换的字体。 推荐XP歌曲正文,字体周正流畅, 当提示符已安装时,选择是,如果您想替换。这将产生一…

linuxTR文件转换的一个示例

linuxTR文件转换的一个示例

示例,文件转换,电脑软件,linuxTR,注释:Linux中的TR命令可用于文件名和实例转换,只有文件名被转换。扩展名转换。其他条件同理心。 如果判断这样一个不满意的条件是不能处理的,否则治疗就不会被退回。 获取文件名 $ {我# *取扩展名。} 小写小…

删除/卸载Firefox(Firefox)浏览器插

删除/卸载Firefox(Firefox)浏览器插

浏览器插件,卸载,方法,删除,图形,使用Firefox浏览器的用户有时希望卸载/删除扩展,但不操作,共享经验。 首先,Firefox浏览器中的插件不能卸载或删除,只能禁用。禁用浏览器插件的方法(总共两个步骤)如下: 第一步,火狐浏览器,点击工具>选项>菜单;打开选…

的cpunumber.exe过程,可以很容易地

的cpunumber.exe过程,可以很容易地

很容易,过程,结束,电脑软件,cpunumber,点评:cpunumber.exe是康柏compaq电脑相关程序。它是一个第三方软件,让你的英特尔奔腾处理器序列号 进程文件:cpunumber或cpunumber.exe 过程名称:康柏CPU数量 过程类别:安全风险的过程 英文描述: cpunumbe…

Linux系统中的find命令使用了一个

Linux系统中的find命令使用了一个

系统,查找文件,命令,示例,使用了,评论:本文主要介绍Linux系统中的find命令(一个Linux查找文件),您需要的朋友可以参考一下。 查找文件mycprogram。C在当前目录及子目录 #找到名称mycprogram C. 查找文件和忽略案例 #找到-iname mycprogram C.…

用mysql获取随机数据的方法

用mysql获取随机数据的方法

方法,数据,电脑软件,mysql,伦德()1.order 数据非常缓慢,随机性非常好,适合非常小的数据量。 复制代码代码如下所示: SELECT * FROM table_name为R1加入(选择(圆(RAND)(选择(* ABS(max(ID)- min(ID)至极限)从table_name)(选择)+ min(ID)从table_name)作为ID)为R2)在r1…

如何加快mysql编译速度

如何加快mysql编译速度

编译速度,电脑软件,mysql,可以添加以下3个参数 没有调试——客户=所有LDFLAGS建立静态——=——所有mysqld LDFLAGS建立静态 但这个问题也将被介绍。静态编译mysqld大于动态编译,可以忽略。 注意mysql-5.1.45不是静态编译,个人实践经验,这个…

网络连接故障网络类型(3)(解决方案)

网络连接故障网络类型(3)(解决方案)

网络类型,故障,网络连接,解决方案,电脑软件,问题: 有时不能在早上下载,使用网络检测结果显示网络连接失败的网络类型(3),原因是什么 答案uff1a 根据测试结果,指出网络连接失败可能是由保护软件或防火墙阻塞Nora造成的。请暂时关闭安全软件和防…

win7打开麦克风截获函数来确定好的

win7打开麦克风截获函数来确定好的

函数,麦克风,电脑软件,点评:一些计算机的麦克风的声音的回声,这是因为听打开麦克风,如果你想使用这个函数来确定它是否会在win7麦克风声音找到麦克风,关于这个问题,下面帮你解决 我们以前使用的WindowsXP系统,是一些电脑麦克风的声音回音,那是因为…