CBO hint:no_unnest,push_subq,push_pred的用法(转载)
常常有人把这三个hint搞混,主要是因为对三种重写原理不清楚。特总结如下。(实验环境为10204)1. no_unnest, unnestunnest我们称为对子查询展开,顾名思义,就是别让子查询孤单地嵌套(nest)在里面。所以un_unne...
CBO学习笔记系列6(转载)
cost of b-tree access这一节我们看看CBO是如何来计算最普通的b-tree索引的访问的cost的。我们知道B-tree索引的结构是一个树状结构,索引中包括root block,branch block, leaf block,这些结构分别相当与树的根,...
CBO学习笔记系列5(转载)
selectivityselectivity是Oracle的CBO中比较重要的一个概念。和selectivity经常一起提到的一个概念是cardinality,其实这两个概念的本质上是一样的。selectivity是指一个SQL操作的得出结果集占原来结果集的百分比,...
Oracle临时表优化查询速度(转载)
看到公司一老员工写的存储过程,跟偶们这些小辈写的对比果然不一样,于是纳闷他那个临时表做什么用,查了下,原来别有洞天. Sql代码 CREATE OR REPLACE PACKAGE BODY p...
绑定变量、BIND PEEKING、histogram(柱状图)的使用(转载)
在我们进行对oracle系统进行优化的时候,我们希望在数据中执行的语句尽量的少出现hard parse,尽量使用绑定变量,可以减少SQL分析,节约共享池的空间,减少CPU的使用,所以对于系统中未使用的绑定语句通常告诉开发人...
CBO学习笔记系列4(转载)
full tablescan and CPU Cost这里我们看一下Oracle9i里面的CBO是如何使用system statistics的,重点看一下CBO如何计算CPU cost。我们前面介绍过oracle8i的CBO的一些缺点(参考:http://fusnow.itpub.net/post/681...
CBO学习笔记系列3(转载)
tablescan 之 不同block size的影响tablescan 之 不同block size的影响前面我们知道Oracle的CBO会根据操作系统的信息适当的调整db_file_multiblock_read_count的值,具体的测试结果如下 (CBO fundamentals原书上...
CBO学习笔记系列2(转载)
关于tablescan 之 自调整的db_file_multiblock_read_count今天打算超额完成任务。闲言碎语不要讲,来做个实验先!--这个实验是CBO fundamentals里面的。首先我的实验环境是Oracle 9.2.0.4,block size 8k,LMT,...
CBO学习笔记系列1(转载)
什么是COST?什么是COST?1. 关于CBO,我们都知道CBO是optimizer based on cost,我们很清楚optimizer是什么,based是什么,On是什么,但问题是:cost是什么?在Oracle8i里面,一条语句的cost基本上代表着Oracle...
Oracle分区索引(转载)
分区索引分为本地(local index)索引和全局索引(global index)。其中本地索引又可以分为有前缀(prefix)的索引和无前缀(nonprefix)的索引。而全局索引目前只支持有前缀的索引。B树索引和位图索引都可以分区,但是HASH...