Oralce数据库的优化(4)

b. 在特定情况下, 使用索引也许会比全表扫描慢, 但这是同一个数量级上的区别. 而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!

32.避免使用耗费资源的操作:

带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL语句会启动SQL引擎
  执行耗费资源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要执行两次排序. 通常, 带有UNION, MINUS , INTERSECT的SQL语句都可以用其他方式重写. 如果你的数据库的SORT_AREA_SIZE调配得好, 使用UNION , MINUS, INTERSECT也是可以考虑的, 毕竟它们的可读性很强

33.优化GROUP BY:

提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉.下面两个查询返回相同结果但第二个明显就快了许多.
  低效:
  SELECT JOB , AVG(SAL) 
  FROM EMP 
  GROUP by JOB 
  HAVING JOB = ‘PRESIDENT' 
  OR JOB = ‘MANAGER' 
  高效:
  SELECT JOB , AVG(SAL) 
  FROM EMP 
  WHERE JOB = ‘PRESIDENT' 
  OR JOB = ‘MANAGER' 
  GROUP by JOB

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/28753b98ccb8526b8fbd507cdc4af3c7.html