1. 程式人生 > >SQL語句優化系列一

SQL語句優化系列一

sql語句 sid 前綴 別名 text pre 操作 解析 歧義

SQL語句優化 1.SELECT 子句中避免使用‘* ’ 2.使用表的別名 (Alias) 當在 SQL 語句中連接多個表時 , 請使用表的別名並把別名前綴於每個 Column 上。這樣一來,就可以減少解析的時間並減少那些由 Column 歧義引起的語法錯誤。 3.用 >= 替代 > 高效 : SELECT * FROM EMP WHERE DEPTNO >=4 低效 : SELECT * FROM EMP WHERE DEPTNO >3 兩者的區別在於,前者 DBMS 將直接跳到第一個 DEPT 等於 4 的記錄而後者將首先定位到 DEPTNO=3 的記錄並且向前掃描到第一個 DEPT 大於 3 的記錄。 4.優化 GROUP BY: 提高 GROUP BY 語句的效率 , 可以通過將不需要的記錄在 GROUP BY 之前過濾掉。下面兩個查詢返回相同結果但第二個明顯就快了許多。 低效 : SELECT JOB , AVG(SAL) FROM EMP GROUP JOB HAVING JOB = ‘PRESIDENT‘ OR JOB = ‘MANAGER‘
高效 : SELECT JOB , AVG(SAL) FROM EMP WHERE JOB = ‘PRESIDENT‘ OR JOB = ‘MANAGER‘ GROUP JOB 備註:避免使用HAVING子句,HAVING 只會在檢索出所有記錄之後才對結果集進行過濾. 這個處理需要排序,總計等操作。如果能通過WHERE子句限制記錄的數目,那就能減少這方面的開銷。

SQL語句優化系列一