关闭

关于SQL执行效率的优化

标签: sqloraclenull优化数据库
315人阅读 评论(0) 收藏 举报
分类:

1.首先要确定DB设计者无误,如果DB根据业务设计比较烂,优化是最大的难度。如一张表总是和自己连接才能取出正确数据。。。

2.注意SQL基本书写规范:少用IN、NOTIN、LIKE、<>、!=等耗时的写法;SELECT中不要用‘*’;where替换having;表用别名,抽取字段前加上表等等。。。

3.了解数据库内部机制,如Oracle从右到左处理From子句中的表名,所以在From子句中包含多个表的情况下,将记录最少的表放在最后;Oracle从下到上处理Where子句中多个查询条件,所以表连接语句应写在其他Where条件前,可以过滤掉最大数量记录的条件必须写在Where子句的末尾;Order By语句中的非索引列会降低性能,可以通过添加索引的方式处理。严格控制在Order By语句中使用表达式。。。

4.索引的使用:Where子句中出现IS NULL或者IS NOT NULL时,Oracle会停止使用索引而执行全表扫描。可以考虑在设计表时,对索引列设置为NOT NULL。这样就可以用其他操作来取代判断NULL的操作。当通配符“%”或者“_”作为查询字符串的第一个字符时,索引不会被使用。索引应该用在可以唯一确定数据的列上,如主键,如果一个索引可以确定一般数据那就没作用,如男女区别。索引也不是加的越多越好。不同类型的列进行比较索引会失效,where子句对索引列计算也会同样导致全表扫描数据从而索引失效。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33033次
    • 积分:560
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:5篇
    • 译文:1篇
    • 评论:3条
    文章分类
    最新评论