Oracle中的一些基本建议优化原则和NULL值

sql优化的部分原则

  • 查询的时候尽量使用列名;如:select ename,sal from emp;
  • 在子查询和多表查询之间选择,尽量使用多表查询;
  • 在集合运算中,如果 union和union all都可以,考虑使用union all.因为union需要去掉重复;
  • 尽量避免使用集合运算;
  • 在where和having都能使用的情况下,推荐选择where;(where后面不能使用分组函数)

    NULL值的问题

  • 包含null的表达式都为null;

  • null 永远 !=null;
  • 如果集合中含有null,不能使用not in ,但可以使用 in;
  • null值的排序问题,在升序中null在下,而在降序中null在上;(莫种意义上oracle中null最大)
  • 在组函数中自动虑空;(可以嵌套虑空函数来屏蔽其虑空功能)

    子查询的相关原则

  • 主查询的where select having from 后面都可以使用子查询;(group by后面不能使用子查询)
  • 一般不在子查询中排序;(在Top-n分析问题中,必须对子查询排序)
  • 一般先执行子查询,再执行主查询;(相关子查询例外)

你可能感兴趣的:(sql)