Query Transformer
Oracle优化器的工作主要分成3步。。。[@more@]Oracle优化器的工作主要分成3步: 首先, 优化器会尝试把复杂的SQL语句转化较为简单的SQL语句, 通常倾向于转化为表的连接方式.然后, 优化器会对依据统计信息对SQL语句进行估量, 这些估量主要包括3个方面: Selectivity, Cardinality和Cost, 这三个方面是相互相关的.最后, 优化器会尝试各种执行计划并给出一个代价最低的计划. 要想理解优化器如何得到最后的执行计划, 首先就要理解被优化的SQL语句的结构, 这是浅显的道理. 但由于Oracle优化器有时候会对我们的SQL语句进行
query optimizer 简介-4
继续[@more@]选择访问路径对于SQL中涉及的表, 优化器选择一个或者多个读取数据的访问路径.访问路径是Oracle获取数据的方法, 这些方法其实不是很多, 包括:Ø Full Table ScansØ Rowid ScansØ Index Scans (索引扫描包括多种不同的类型)Ø Cluster AccessØ Hash AccessØ Sample Table Scans为了选择合适的访问路径, 优化器首先现确定哪些访问路径是可用的, 然后根据所有的可用路径组成多个执行计划, 针对每个执行计划计算cost并最终会选用cost最小的执行计划. 在这个过程中, 我们可以通过给SQL添加
Query Optimizer简介-1 SQL的逻辑与物理
打算对10g的优化器做一些基础介绍,这个是第一帖[@more@]SQL的逻辑与物理让我们以一个语句来开始我们的话题, 这个语句并不是以我们熟悉的SQL如”select c1, c2 from …”的方式给出, 而是以我们更加熟悉的陈述方式给出: “今天我需要去商店买冷饮,给汽车加油, 还有寄包裹,”. 假如我们有一个机器人(Robot Oracle)负责决定如何完成这些任务, 默认的, 它可能会按照我们输入的指令的顺序来完成任务, 这样做任务当然可以完成, 但很可能不是完成任务的最好方式.如果先买冷饮, 冷饮会不会在完成其他任务的过程中化掉? 如果在去加油站的路上油就用