oracle 8i上的优化参数

/*+ FULL(tablename) */: 明确的指定进行全表扫描

/*+ ROWID(tablename) */: 明确的选择根据rowid进行表扫描

/*+ CLUSTER(tablename) */: 明确的指定对指定表进行群集扫描, 只能应用于tablename的条件中有群集对象时

/*+ HASH(tablename) */: 明确的选择对指定表进行hash扫描, 只能应用于tablename的条件中有群集对象时

/*+ HASH_AJ */: 转化一个not in子查询为一个anti-join的hash扫描

/*+ HASH_SJ */: 转化一个EXISTS子查询为一个semi-join的hash扫描

/*+ INDEX(TABLENAME INDEXNAME) */: 明确的指定使用某个表的某个索引, 指定了这个优化参数, 优化器对这个表将不考虑进行全表扫描或用这个表的其它索引. 如果对表指定了多个索引, 那么优化器将会考查每一个索引的成本, 选择成本最小, 或者选择多个索引联合使用, 然后将结果再组合起来, 当这都建立在, 优化器认为这样作是成本最低的情况下. 如果没有指定索引, 优化器会考查表上每一个可以使用的索引.

/*+ INDEX_ASC(tablename indexname) */: 这个优化参数在缺省时与 INDEX 优化参数是一样的, 除非你的数据库中的索引扫描的缺省行为被改变了. 缺省行为是对索引进行正序扫描

/*+ INDEX_COMBINE(tablename indexname) */ : 如果不指定索引, 那么优化器将使用bitmap索引进行布尔组合, 而不管是不是成本最低的. 如果没有bitmap索引的话, 也会强制的转化一个索引为bitmap索引来进行布尔组合. 如果指定了索引,那也与上叙一样, 但会使用指定的索引.

/*+ INDEX_DESC(tablename indexname) */: 与 INDEX 优化参数一样, 不过将会以逆序进行索引扫描.

/*+ INDEX_FFS(tablename indexname) */: 会用索引快速扫描代替全表扫描.

/*+ MERGE_AJ */: 转化一个not in子查询为一个 merge anti-join 查询

/*+ MERGE_SJ */: 转化一个exists子查询为一个merge semi-join 查询

/*+ AND_EQUAL(tablename indexname indexname.....) */: 明确指定建立一种执行计划, 这个计划会把根据指定索引得到列进行组合. 这个优化参数必须指定至少二个索引, 但不能多于五个

/*+ USE_CONCAT */: 将where语句中的or运行转化为union all形的操作, 如果这个操作的成本比没有这个操作的成本低的话

/*+ ORDERED */: 指定oracle根据from后面表的顺序进行join操作

/*+ STAR */: 指定实行star plan, star plan将最大的表放在join操作的最后, 并进行nested loops join. 这个优化参数所用的语句,必须至少有三个表

/*+ USE_NL(TABLENAME) */: 在很多情况下 nested loops join比sort-merge join要快的返回第一行记录, 造成更快的反应速度,这个参数就是指定表要进行 nested loops join, 而不是sort-merge join

/*+ USE_MERGE(TABLENAME) */: 指定表要进行sort-merge join

/*+ USE_HASH(TABLENAME) */: 指定表进行hash join

/*+ DRIVING_SITE(TABLENAME) */: 指定表是在其它服务器上的 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值