事后诸葛亮的程序人生(微信:zq9017197)

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!...

排序:
默认
按更新时间
按访问量

(8)连接基数

1、两表连接 oracle有两个公式用于连接基数的计算: 假设我们对表t1和t2进行连接,连接列分别是c1和c2。 Join Selectivity = ((num_rows(t1) - num_nulls(t1.c1)) / num_rows(t1)) * ((...

2013-02-27 17:38:08

阅读数:768

评论数:0

(7)查询转换

查询转换——视图合并(1)! 查询转换——子查询解嵌套(2)! 查询转换——谓语前推(3)! 查询转换——使用物化视图进行查询重写(4)! 半联结&反联结!

2013-02-27 16:14:16

阅读数:336

评论数:0

(6)位图索引(bitmap)

1、入门 SQL> create table t1 2 pctfree 70 3 pctused 30 4 nologging 5 as 6 select 7 mod((rownum-1),20) n1, -- 散布值为20 ...

2013-02-25 10:02:42

阅读数:382

评论数:0

(5)直方图(histograms)

1、入门 SQL> create table t1 2 as 3 with kilo_row as ( 4 select /*+ materialize */ 5 rownum 6 from all_objects 7 where...

2013-02-20 16:45:20

阅读数:964

评论数:0

(4)选择率(selectivity)的相关问题

本章将讨论采用标准的选择率计算方式却产生不合适结果的一些最常见原因。 1、前导零 创建一个包含2000000行数据的表,它有一个id列,采用序号并利用0来进行填充其他位。因此典型的存储值将是A00000000000000001,系统中绝大部分使用这种策略的查询,类似于where id={str...

2013-02-06 16:04:14

阅读数:966

评论数:0

(3)校正聚簇因子(CLUSTERING_FACTOR )——下

1、ASSM带来的性能问题 ASSM通过增加数据的分布的随机性来减少争用。在ASSM下,并发的进程基本都选择不同的块来插入数据行。因此,在我们使用序列或者以日期作为插入顺序的表并在其上面建立索引的话,可能将会导致索引的聚簇因子比较大。 SQL> create tablespace ass...

2013-02-05 16:31:16

阅读数:1101

评论数:0

(3)聚簇因子(CLUSTERING_FACTOR )——上

大家知道数据表中的数据都是无序的存在库中,当我们在对数据进行检索的时候,查找起来很是耗费资源,于是我们就需要为表创建索引,索引的作用就是把表中的数据按照一定的顺序排列保存起来,于是就出现了一个问题,有的表中的数据和索引想要排列的顺序很是相近,而另一些表中的数据和索引想要排列的顺序相距甚远,聚簇因子...

2013-02-04 17:41:31

阅读数:915

评论数:0

(2)简单B树访问——计算执行计划的成本

通过索引来访问表的成本公式应该包含3个与块相关的组件:按降序遍历的分支层数、遍历 叶块的数目和访问过的表块的数目。 1、入门 SQL> create table t1 2 nologging 3 as 4 select 5 trunc(dbms_random.v...

2013-01-28 17:47:09

阅读数:596

评论数:0

(1)oracle单表选择率(selectivity)——计算执行计划的基数

CBO优化器是基于对当前经过特定测试的数据集中预期的行比率估计来计算基数的。此处的行数之比是一个数值,称为选择率(selectivity)。得到选择率之后,将其与输入行数进行简单相乘既可得到基数。 在理解选择性之前,必须得对user_tab_col_statistics视图有一定了解: SQL...

2013-01-25 15:35:52

阅读数:3646

评论数:0

oracle外联结无法改变驱动表!

SQL> select /*+ leading(e) */ e.*,d.* from emp e,dept d where e.deptno=d.deptno; 执行计划 --------------------------------------------------------...

2013-01-05 15:04:55

阅读数:508

评论数:0

半联结&反联结!

半联结是在两个数据集(表)之间的联结,其中第一个数据集中的数据行在决定是否返回时会根据在另一个数据集中出现或不出现至少一个相匹配的数据行来确定。“不出先”匹配行——这是半联结的一种特殊形式,称为反联结。 标准的内联结与半联结之间最主要的区别在于在半联结中,第1个数据集中的每一条记录至返回一次,而...

2012-12-26 16:40:37

阅读数:727

评论数:0

查询转换——使用物化视图进行查询重写(4)!

查询重写是一种发生在当一个查询或查询的一部分已经被保存为一个物化视图,转换器重写该查询以使用预先计算好的物化视图数据而不需要执行当前查询的转换。 /*+ REWRITE(MVIEW_NAME) */  使用物化视图进行查询重写。 SQL> select e.empno, e.ename,...

2012-12-25 10:54:38

阅读数:1294

评论数:0

查询转换——谓语前推(3)!

谓语前推用来将谓语从一个内含查询块中应用到不可合并的查询块中。目标就是允许索引的使用或者让其他对于数据集的筛选在查询中能够更早的进行。 /*+ NO_PUSH_PRED */ 禁止谓语前推。 SQL> select e1.ename, e1.sal, v.avg_sal 2 ...

2012-12-25 10:29:12

阅读数:1336

评论数:0

查询转换——子查询解嵌套(2)!

子查询解嵌套与视图合并的相似之处在于子查询也是通过一个单独的查询块来表示的。可合并的视图与可以解嵌套的子查询之间的主要区别在于它们的位置是不同的:子查询位于WHERE子句。 /*+ NO_UNNEST */    禁止子查询解嵌套转换。 SQL> select /*+ gather_pl...

2012-12-20 12:54:47

阅读数:679

评论数:0

查询转换——视图合并(1)!

查询转换的主要目的就是确定如果改变查询的写法会不会提供更好的查询计划。查询转换能够并且可能会重写你的查询。查询转换器可能会改变你最初所写查询的结构,只要这样的改变不会影响结果集。 视图合并是一种将内嵌或存储试视图展开为能够独立分析或者与查询剩余部分合并成总体执行计划的独立查询块的转换。 /*+...

2012-12-19 17:35:59

阅读数:1476

评论数:0

相关列问题!

先来创建一个表T create table t as select level as id ,level||'a' as a,level||level||'b' as b from dual connect by level 这里A列的值能够确定B列的值, insert into t sel...

2012-12-03 11:12:09

阅读数:341

评论数:0

三种链接方式详解(HASH JOIN MERGE JOIN NESTED LOOP)

注意:本文转载自:http://blog.csdn.net/tianlesoftware/article/details/5826546 在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式。 之前打算在sqlplus中用执行计划的,但是格式看起来有点乱,就用To...

2012-11-22 17:05:40

阅读数:455

评论数:0

bind peeking

光有统计信息是不够的,变量的值不同,可能采用的执行计划也不同,所以Oracle引入了bind peeking这个技术。但需要强调的是,即使是bind peeking,也只是发生在硬分析的时候。 SQL> drop table t purge; 表已删除。 SQL> create ...

2012-06-21 13:34:39

阅读数:1166

评论数:0

并行执行!

并行处理内部的机制: 首先Oracle会创建一个进程用于协调并行服务进程之间的信息传递,这个协调进程将需要操作的数据集分割成很多部分,称为并行处理单元;然后并行协调进程给每个并行进程分配一个数据单元。比如有四个并行服务进程,他们就会同时处理各自分配的单元,当一个并行服务进程处理完毕后,协调进...

2012-06-20 22:34:27

阅读数:1368

评论数:0

Oracle10g获取sql语句的执行计划详解!

Oracle10g获取sql语句的执行计划详解   ---   Oracle诊断或调优经常需要做的就是查看SQL语句的执行计划,很多时候我们需要得到sql语句在不同场景、不同时间段的执行计划。       一,通过explain plan命令获得sql语句的执行计划。   explain...

2012-06-14 18:00:20

阅读数:1090

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭