可以使用 exist 和not exist代替 in和not in。
可以使用表鏈接代替 exist。Having可以用where代替,如果無法代替可以分兩步處理。例子SELECT * FROM ORDERS WHERE CUSTOMER_NAME NOT IN(SELECT CUSTOMER_NAME FROM CUSTOMER)優化SELECT * FROM ORDERS WHERE CUSTOMER_NAME not exist(SELECT CUSTOMER_NAME FROM CUSTOMER)7.2 不要以字符格式聲明數字,要以數字格式聲明字符值。(日期同樣)否則會使索引無效,產生全表掃描。例子使用:SELECT emp.ename, emp.job FROM emp WHERE emp.empno = 7369;不要使用:SELECT emp.ename, emp.job FROM emp WHERE emp.empno = ‘7369’8.對Select語句的法則在應用程序、包和過程中限制使用select * from table這種方式??聪旅胬邮褂肧ELECT empno,ename,category FROM emp WHERE empno = '7369‘而不要使用SELECT * FROM emp WHERE empno = '7369'9. 排序避免使用耗費資源的操作,帶有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL語句會啟動SQL引擎 執行,耗費資源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要執行兩次排序10.臨時表慎重使用臨時表可以極大的提高系統性能新聞熱點
疑難解答