【正文】
2000 AND = AND = 。2) 不使用容易與系統(tǒng)關(guān)鍵字重復(fù)的單詞來命名,如ID,DATE等,但可以使用如NODEID,BUYDATE等可以來命名;3) SQL語句用大寫字母(字段中的內(nèi)容除外); 4) 編寫ddl和dml時,每個語句后面必須加上分號;5) 對于定期增加性的性能數(shù)據(jù)表,必須建立有效的索引;6) 查詢語句的Where語句必須落在索引上。這里不直接使用drop的原因是減小數(shù)據(jù)庫的開銷。 UNION如果不過濾多表中的重復(fù)數(shù)據(jù),請使用UNION ALL;如果過濾多表中的重復(fù)數(shù)據(jù),請使用UNION。 group by或order by子句中列的次序與索引的次序不一樣;216。應(yīng)當(dāng)盡量避免子查詢。應(yīng)當(dāng)避免使用distinct關(guān)鍵字。N39。在A字段上建立了索引。3. 語句書寫規(guī)范. 盡量不使用某種數(shù)據(jù)庫的特有功能為了保持可移植性,盡量不使用某種數(shù)據(jù)庫的特有功能,如SQL Server專用的Unique ID, Oracle專用的Sequence的功能;. 查詢sql語句盡量使用綁定變量. 盡最大可能不使用通配符在SQL語句中,LIKE關(guān)鍵字支持通配符匹配,但這種匹配特別耗費時間。. 字段名稱字段名不得超過30個字母,必須以英文單詞構(gòu)成,每個單詞之間以下劃線隔開,全部采用大寫字母。項目一部數(shù)據(jù)庫開發(fā)規(guī)范版本號日期修改者說 明20120306注:對該文件內(nèi)容增加、刪除或修改均需填寫此變更記錄,詳細(xì)記載變更信息,以保證其可追溯性。對復(fù)雜的大型應(yīng)用系統(tǒng)而言,必須建立表名和字段名的數(shù)據(jù)字典,并附于開發(fā)規(guī)范附錄中,在命名時必須嚴(yán)格遵守數(shù)據(jù)字典。如:SELECT A FROM ABC WHERE A LIKE 39。把語句改為SELECT A FROM ABC WHERE A 39。在執(zhí)行查詢時會利用索引以提高響應(yīng)速度。 嵌套查詢SELECT A FROM CMS_USER WHERE USER_NAME IN ( SELECT USER_NAME FROM CMS_DEPARTMENT WHERE DEPARTMENT=’電子辦’)如果我們用連接來代替,且表關(guān)聯(lián)放在條件語句的最后部。如果子查詢不可避免,那么要在子查詢中過濾掉盡可能多的行。 排序的列來自不同的表。 長語句避免使用很長、很復(fù)雜的查詢語句,如果有特殊需求必須書寫較長的SQL語句,應(yīng)該把語句分解成若干部分,每一部分形成一個存儲過程或函數(shù)。Truncate 是在秒的級別中完成。4 高效的sql語句 Sql優(yōu)化方法RBO(rulebased optimizer)CBO 驅(qū)動表1)2張行數(shù)不一致的表連接 表TAB1行數(shù):16,384行 表TAB2行數(shù):1行SELECT COUNT(*) FROM TAB2, TAB1。 Where語句順序的效率1) 使用索引引起的where語句效率使用AND語句時行數(shù)多的放在前面SELECT * FROM emp E WHERE emp_sal 50000 AND emp_type = 39。MANAGER39?!餝ELECT * FROM emp E WHERE (emp_sal 50000 AND emp_type = 39。 SELECT ROWID, ... INTO :emp_rowid, ... FROM emp WHERE = 56722 FOR UPDATE?!餝ELECT , , , , , FROM emp A, emp B WHERE = 0342 AND = 0291。CAPITAL%39?! 餝ELECT acc_name, trans_date, amount FROM transaction WHERE trans_date BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE) + .99999。AMEX39。 ○SELECT acc_name, trans_date, amount FROM transaction WHERE amount 5000 + 3000。SMITH%39。X39?!?SELECT , , , , FROM pany C, emp E WHERE = 。SELECT COUNT(1) FROM TRANS。PERTH39。PERTH39。MANAGER39。X39。MANAGER39。A39。OR EXISTS ( SELECT 39。)。 FROM emp E