oraclehint强制索引(转)

更新时间:2023-07-01 15:24:40 阅读: 评论:0

oraclehint强制索引(转)
oracle
1.建议建⽴⼀个以paytime,id,cost的复合索引。光是在paytime上建⽴索引会产⽣很多随机读。
世界和平英文2.就算建⽴了索引,如果你查询的数据量很⼤的话,也不⼀定会⽤索引,有时候全表扫描速度⽐索引扫描要快!(官⽅⽂档上好像说的是⼤概10%,就是如果你查询的数据占到总数据的10%,全表扫描⽐索引快)。
3.建复合索引语句如下(建议去看看官⽅⽂档,建索引有很多参数,⽽且每个版本的也不⼀定⼀样):
CREATE TEST_CSUME_test
(PAYTIME,ID, COST)
droneLOGGING
TABLESPACE _A
NOPARALLEL;
最后说⼀句,好像没有“强制索引”的说法的!
追问:
我记得有强制索引啊,就是/*+这⾥⾯写的*/,但是我不知道语法
2013年12月英语四级追答:
你指的是⽤hints去提⽰你查询语句去使⽤哪个索引。
SELECT  /*+INDEX(TABLE INDEX_NAME)*/ FROM TABLE
可以提⽰ORACLE 去使⽤TABLE 表上已经建好的INDEX_NAME。ORACLE 官⽅⽂档上说过,这并不是强制的,仅仅是提⽰,优化器可能会选择这个索引,也可能不选择。不过绝⼤部分情况会按照提⽰的去做!hints是oracle提供的⼀种机制,⽤来告诉优化器按照我们的告诉它的⽅式⽣成执⾏计划。我们可以⽤hints来实现:
1) 使⽤的优化器的类型
2) 基于代价的优化器的优化⽬标,是all_rows还是first_rows。
3) 表的访问路径,是全表扫描,还是索引扫描,还是直接利⽤rowid。
4) 表之间的连接类型
5) 表之间的连接顺序plates
6) 语句的并⾏程度
2、HINT可以基于以下规则产⽣作⽤
表连接的顺序、表连接的⽅法、访问路径、并⾏度
3、HINT应⽤范围
rumourdml语句
查询语句
六级培训4、语法
{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */
高考准考证号码查询or
{DELETE|INSERT|SELECT|UPDATE} --+ hint [text] [hint[text]]...
如果语(句)法不对,则ORACLE会⾃动忽略所写的HINT,不报错
例⼦:
shooin
在⼀些场景下,可能ORACLE不会⾃动⾛索引,这时候,如果对业务清晰,可以尝试使⽤强制索引,测试查询语句的性能。
以EMP表为例:
先在EMP表中建⽴唯⼀索引,如图。
普通搜索:
SELECT * FROM EMP T
查看执⾏计划:
concept是什么意思
可以看到,是⾛的全表扫描。
使⽤强制索引,在SELECT 后⾯加上/*.......*/ 中间加上索引的属性,代码如下:
SELECT /*+index(t pk_emp)*/* FROM EMP T
--强制索引,/*.....*/第⼀个星星后不能有空格,⾥边内容结构为:加号index(表名空格索引名)。--如果表⽤了别名,注释⾥的表也要使⽤别名。
可以看到,这是⾛的是索引PK_EMP。
edm是什么意思

本文发布于:2023-07-01 15:24:40,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/163780.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   强制   语句
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图