困惑的问题:
1.什么样的sql才能算是高效的sql?
2.2.sql为什么不带索引?如何制作sql索引,即改变sql的执行计划
3.有哪些种类的索引?
4.什么时候使用索引,什么时候扫描整个表?
Oracle optimizer的表统计,评估表的最佳连接顺序、连接方式和执行路径;
最后生成一个执行计划,oracle根据这个计划执行sql。
1.什么样的sql是高效sql?
回答:最本质的回答是执行时间最短,怎么可能最短,就是用最少的资源做事情,不做无用功;
就算sql的io最少,怎么可能最少?尝试使用索引,而不是扫描整个表;在关联的多表中
这时候,开发人员要选择正确的表连接方法、执行路径等。
2.2.sql为什么不带索引?
A.类型不匹配
乙.条件列包含函数,但未创建相应的函数索引。
丙.复合索引中的前导列不用作查询条件。
d .在CBO模式下,选择的行数较多,优化器选择全表扫描。
e .在CBO模式下,表很长时间没有被分析,优化器选择全表扫描。
3.索引类型和创建方法
答.B*指数
在tablename(columnname)上创建索引indexname
B.反转标牌
对tablename(columnname)反向创建索引indexname
C.递减指数
在tablename(columnname desc)上创建索引indexname
D.位图索引
在tablename(columnname)上创建位图索引indexname
e .功能索引
在tablename(function name(column name))上创建索引indexname
4.什么时候使用索引,什么时候使用全表扫描?
答:
在使用索引时,你应该先了解一些基本信息。
表格里有多少行?返回多少行?表中的哪些列有索引?它们是什么样的指数?
当有多个条件列时,应该选择哪种索引?
A.当有序表中查询的记录数小于40%时,最好使用index否则,用全表扫描。
B.当无序表中查询的记录数小于7%时,最好使用index否则,用全表扫描。
C.当手表有许多锁片时(这款手表的dml操作非常频繁)
关键词:sql
优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。本文链接:http://www.123down.cn/gonglue/227427.html