SQL查询语句性能优化技巧(二)

你可以用DECODE函数高效地得到相同结果SQL查询语句性能优化技巧(二)

'X'表示任何一个字段
类似的,DECODE函数也可以运用于GROUP BY和ORDER BY子句中

6.用Where子句替换HAVING子句
避免使用HAVING子句,HAVING只会在检索出所有记录之后才对结果集进行过滤,这个处理需要排序、统计等操作

如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销
例如: 

SQL查询语句性能优化技巧(二)


7.减少对表的查询

在含有子查询的SQL语句中,要特别注意减少对表的查询

例如:

SQL查询语句性能优化技巧(二)


Update多个Column例子:

SQL查询语句性能优化技巧(二)



8.使用表的别名(Alias)

当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个Column上,这样可以减少解析的时间并减少那些由Column歧义引起的语法错误

9.用EXISTS替代IN
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接
在这种情况下,使用EXISTS(或NOT EXISTS)通常将提高查询的效率
SQL查询语句性能优化技巧(二)


10.用NOT EXISTS替代NOT IN
在子查询中,NOT IN子句将执行一个内部的排序和合并
无论在哪种情况下,NOT IN都是最低效的,因为它对子查询中的表执行了一个全表遍历 


为了避免使用NOT IN,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS
例如:

SQL查询语句性能优化技巧(二)

为了提高效率改写为

SQL查询语句性能优化技巧(二)



上一篇:微信JS-SDK DEMO页面和示例代码


下一篇:《R语言游戏数据分析与挖掘》一2.4 小结