今天研究执行计划,看到执行计划里面有Cost (%CPU),我这边研究了一把,不知道对与否,拿出来晒晒在Oracle 10g中,Oracle 把CPU的cost也统计在执行计划中去了, 这和以前的8i,9i(9i其实已经开始了)有很大的不同。所以用一个公式来表示cost,可以简单的写成Cost = ...
分类:
其他好文 时间:
2014-07-18 21:15:21
阅读次数:
254
最近在给一个客户做调优的时候发现一个很有意思的现象,对于一个复杂查询(涉及12个表)建立必要的索引后,语句使用的IO急剧下降,但执行时间不降反升,由原来的8秒升到20秒。 通过观察执行计划,发现之前的执行计划在很多大表连接的部分使用了Hash Join,由于涉及的表中数据众多,因此查询优化器选择使用...
分类:
数据库 时间:
2014-07-18 08:01:44
阅读次数:
346
在sql中不指定Order by,排序是按照主键吗?答案是不一定。举个例子: 查询AttendanceEmpRank表,主键是AttendanceEmployeeRankId,而且是聚集索引 执行下面的语句,发现第一句不指定Order by的结果跟第二句不一样。 再看看执行计划,我们可以知道,第一句...
分类:
数据库 时间:
2014-07-16 19:03:15
阅读次数:
224
Catalyst定位
其他系统如果想基于Spark做一些类sql、标准sql甚至其他查询语言的查询,需要基于Catalyst提供的解析器、执行计划树结构、逻辑执行计划的处理规则体系等类体系来实现执行计划的解析、生成、优化、映射工作。
对应上图中,主要是左侧的TreeNodelib及中间三次转化过程中涉及到的类结构都是Catalyst提供的。至于右侧物理执行计划映射生成过程,物理执行计划基于成本的优化模型,具体物理算子的执行都由系统自己实现。
Catalyst现状
在解析器方面提供的是一个简单的scala...
分类:
数据库 时间:
2014-07-16 17:34:38
阅读次数:
391
下面的执行计划是怎么打印出来的,很多朋友还是不知道。其实语句只有三条: explain plan for 你要查看的SQL语句;commit;select * from table(dbms_xplan.display); -----分割线--------------------------...
分类:
其他好文 时间:
2014-07-16 17:04:23
阅读次数:
224
查询oracle sql的执行计划时,一个很重要的视图--dba_hist_sql_plan...
分类:
数据库 时间:
2014-07-16 13:47:45
阅读次数:
464
经过N次安装尝试吐血总结,希望对大家有所帮助,同时做下记录备忘:
总结:安装前的准备工作是关键!!!Check and recheck!
***********************ORACLE 12C 安装步骤********************************************
0、准备软件:Oracle Linux 6.4 X86_64 虚拟机...
分类:
数据库 时间:
2014-07-15 10:34:02
阅读次数:
276
RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。Oracle的优化器有两种,基于规则的优化器(RBO)与基于代价的优化器(CBO) RBO: Rule-Based Optimiz...
分类:
数据库 时间:
2014-07-15 00:04:02
阅读次数:
581
在oracle中,标量子查询和自定义函数用的比较多,而且开发人员也比较常用,但经常会引起性能问题,特别表比较大的时候。下面的案例将教大家彻底搞懂标量子查询:
SQL> create table a (id int,name varchar2(10));
Table created.
SQL> create table b (id int,name varchar2(10));...
分类:
数据库 时间:
2014-07-14 18:38:36
阅读次数:
510
在数据库中,对性能影响最大的包括数据库的锁策略、缓存策略、索引策略、存储策略、执行计划优化策略。索引策略决定数据库快速定位数据的效率,存储策略决定数据持久化的效率。1.索引不存储null值。 更准确的说,单列索引不存储null值,复合索引不存储全为null的值。索引不能存储Null,所以对这列采用i...
分类:
数据库 时间:
2014-07-14 10:52:25
阅读次数:
248