- 2
- 0
- 约1.62万字
- 约 48页
- 2017-06-10 发布于北京
- 举报
ORACLESQL编写规范〔v1.1〕”
* * * * * * * * * * * * * * * * * * * * * * * * * * * * 15.注意索引无法被使用的情况 被索引字段在过滤谓词上使用了全模糊查询的方式如col like ‘%ABC%’ 这种情况的处理原则还是尽量避免或者进行改写,具体方法可参照前文有关模糊查询的部分。 ? 被索引字段在过滤谓词中使用了!=,,NOT IN等 这种情况的处理原则还是尽量避免或者进行改写,比如说取不等于或NOT IN部分的反,然后就可以将条件改为等于或者是IN了。但要评估各自占总记录数的比例,如果占比过高的话,索性就用全表扫描了。 15.注意索引无法被使用的情况 被索引字段在过滤谓词中使用了函数。 此时除非建立函数索引,否则普通索引是无法被使用的,如例: WHERE TO_CHAR(zip) = ‘94002’; ? 类似这种情况我们可以将改写一下,将计算移动到等号右侧: WHERE zip = TO_NUMBER(‘94002’); 改写的原则就是使过滤谓词一边,也就是左侧保持“干净”,这样在zip字段上的普通索引就可以被使用了。因为毕竟函数索引在做索引维护的时候成本是比较高的,而且在zip字段上所建立的函数索引只能用于这种使用了该函数的场景,针
原创力文档

文档评论(0)