-
SQL 語句不正確。
我的答案呢?
-
1.盡量不要在 where 中包含子查詢;
對於時間查詢,盡量不要寫成:where to char(dif date,'yyyy-mm-dd')=to char('2007-07-01 ,'yyyy-mm-dd');
2.在過濾條件中,可以過濾掉最大記錄數的條件必須放在 where 子句的末尾;
首先處理 from 子句末尾寫的表(驅動表),如果 from 子句包含多個表,則必須選擇記錄最少的表作為基表。 如果有三個以上的聯接查詢,則需要選擇乙個交集表作為基礎表,該表是其他表引用的表。
3.採用繫結變數。
4.盡量不要使用或在什麼地方使用
5.將 in 替換為 exists,而不是 not exist,而不是 not in;
6.避免對索引列使用計算:其中 sal*12>25000;
7.使用 in 代替 or:其中 loc id=10 或 loc id=15 或 loc id=20
8.避免在索引列上使用 is null 和 is not null;
9.始終使用索引的第一列;
10.用 union-all 代替 union;
11.避免更改索引列的型別:select...。從emp where empno='123'(由於隱式資料型別轉換)到char(empno)='123',因此不會使用索引,它通常會出現在使用字串拼湊的動態SQL語句中;
12.’!=' 不會使用索引;
13.優化分組依據;
14.避免使用帶有類似引數的萬用字元,例如“4ye%”使用索引,但“%ye”不使用索引。
15.避免使用困難的正式表示式,例如select * from customer where zipcode,如“98 即使索引建立在郵政編碼上,在這種情況下,它仍然是順序掃瞄。 如果將語句改為選擇 * from customer where zipcode>“98000,則在執行查詢時會使用索引進行查詢,這顯然會大大提高速度;
16.盡可能顯式地完成 SQL 語句,並盡可能少地讓資料庫工作。 例如,在編寫 select 語句時,需要指定查詢欄位的表名。
盡量不要使用 select * 語句。 在組織SQL語句時,盡量按照資料庫的習慣進行組織。
閱讀中冗長而困難的句子。
在閱讀長而困難的句子時,閱讀和翻譯中超過60%的問題都與此有關。 很多人說去Ken Grammar—— >>>More