当前位置: 代码迷 >> SQL >> {转}SQL优化34条提议2
  详细解决方案

{转}SQL优化34条提议2

热度:93   发布时间:2016-05-05 13:25:51.0
{转}SQL优化34条建议2

(32)使用索引
a.?如果检索数据量超过30%的表中记录数.使用索引将没有显著的效率提高.
b.?在特定情况下,?使用索引也许会比全表扫描慢,?但这是同一个数量级上的区别.?而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!
(33)避免使用耗费资源的操作:
带有DISTINCT,UNION,MINUS,INTERSECT,ORDER?BYSQL语句会启动SQL引擎
执行耗费资源的排序(SORT)功能.?DISTINCT需要一次排序操作,?而其他的至少需要执行两次排序.?通常,?带有UNION,?MINUS?,?INTERSECTSQL语句都可以用其他方式重写.?如果你的数据库的SORT_AREA_SIZE调配得好,?使用UNION?,?MINUS,?INTERSECT也是可以考虑的,?毕竟它们的可读性很强
(34)优化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

  相关解决方案