
oracle
00M
keep alive
展开
-
Oracle执行计划详解
Oracle执行计划详解---作者:TTT BLOG本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html---简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容。 并有总结和概述,便于理解与记忆!+++转载 2014-03-20 22:09:15 · 842 阅读 · 0 评论 -
哈希连接(hash join) 原理
访问次数:驱动表和被驱动表都只会访问0次或1次。驱动表是否有顺序:有。是否要排序:否。应用场景: 1. 一个大表,一个小表的关联;2. 表上没有索引;3. 返回结果集比较大。原理我们说的简单一点,先把驱动表的关联字段hash到PGA中(当然rowid也在PGA中),然后扫描被驱动表,取第一条数据,将关联的字段hash 一下探测PGA中的小表,如果匹配则关联,再取第二转载 2015-03-04 21:49:53 · 4695 阅读 · 0 评论 -
嵌套循环连接(nested loops join)原理
访问次数:驱动表返回几条,被驱动表访问多少次。驱动表是否有顺序:有。是否要排序:否。应用场景: 1.关联中有一个表比较小;2.被关联表的关联字段上有索引;3.索引的键值不应该重复率很高。如果你做过开发,就把它看成两层嵌套的for循环。下面我们来做个实验:SQL> create table test1 as select * from dba_objects转载 2015-03-04 21:48:34 · 952 阅读 · 0 评论 -
Oracle的Filter,Nest loop,Merge sort join和Hash join
转自:http://czmmiao.iteye.com/blog/1807571Merge Sort Join按照Merge Sort Join连接的两表地位完全相同。这种算法会把每个表按照连接列进行排序,生成两个排序集。然后对两个排序集进行一次遍历便可以得到最终结果集。这个算法的特点是,每个表都需要排序,排序后都需要遍历一次。以下面的例子说明,Merge Sort Joi转载 2015-03-05 21:52:16 · 792 阅读 · 1 评论 -
Oracle索引块分裂split信息汇总
转自:http://www.oracledatabase12g.com/archives/index-split.html索引块分裂概念介绍 索引中的数据块 按照其作用分为:root block 根块、branch block 枝块、leaf block 叶块。 root block根块: 根块是索引的入口对于一个索转载 2015-03-07 22:18:00 · 1735 阅读 · 0 评论 -
如何通过跟踪一个客户端程序发出的sql的方法来优化SQL
概括介绍,跟踪一个客户程序发出的SQL主要分成下面几步:1. 识别要跟踪的客户端程序到数据库的连接(后面都用session代替),主要找出能唯一识别一个session的sid与serial#。2. 设定相应的参数,如打开时间开关(可以知道一个sql执行了多长时间),存放跟踪数据的文件的位置、最大值。3. 启动跟踪功能。4. 让系统运行一段时间,以便可以收集到跟踪数据转载 2015-03-07 22:12:58 · 1960 阅读 · 0 评论 -
排序合并连接(sort merge join)的原理
访问次数:两张表都只会访问0次或1次。驱动表是否有顺序:无。是否要排序:是。应用场景:当结果集已经排过序。排序合并连接原理:如果A表的数据为(2,1,4,5,2),B表的数据为(2,2,1,3,1) ,首先将A表和B表全扫描后排序,如下:A B1 12 12 24 25 3因为没有驱动表,所以oracle会随机选择一张转载 2015-03-04 21:42:58 · 2047 阅读 · 0 评论