sql語句的一些規則
1。在條件語句中使用exists而不是in
SQL> select a.deptno,a.ename from emp a 2 where a.deptno in (select deptno from dept);
改為:
SQL> select a.deptno,a.ename from emp a 2 where exists (select b.deptno from dept b where a.deptno = b.deptno);
原因:使用'exists'的執行計劃要比'in'的要好。
2。在where子句中最好不要在索引列上使用函式和使用運算
SQL> select deptno,ename from emp where deptno=20;
最好不要使用:
SQL> select deptno,ename from emp where deptno+10=20;
原因:在where子句中,如果對索引列不使用函式或者運算,則會使用索引檢索資料,否則不使用索引,而是全表掃描。
3。有些情況下,Oracle會使用隱式的資料轉換如果在where子句比較表示式中左右兩邊的資料型別不一致時會發生隱式的資料型別轉換,這種情況應該儘量避免。
但是,由number型別轉換未varchar2型別時,仍然使用索引;
而由varchar2型別轉換為number型別時,則不會使用索引。(這種情況是尤其要避免的)
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/74296/viewspace-1015703/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一些SQL語句SQL
- SQL語句規範的寫法SQL
- SQL語句規範總結SQL
- 一些sql語句的關鍵詞SQL
- sql server 中的一些實用的sql語句SQLServer
- MySQL的一些常用的SQL語句整理MySql
- SQL Server SQL語句進行優化的基本原則SQLServer優化
- sql中as的用法和一些經典的sql語句SQL
- SQL語句效能調整原則(zt)SQL
- SQL語句優化的原則與方法QOSQL優化
- SQL語句與正規表示式SQL
- SQL Server SQL語句進行優化的基本原則 (轉)SQLServer優化
- sql 正則替換資料庫語句!SQL資料庫
- oracle優化sql語句的一些建議Oracle優化SQL
- 實現四則運算的一條sql語句SQL
- EFCore常規操作生成的SQL語句一覽SQL
- Oracle語句優化53個規則詳解Oracle優化
- Oracle語句優化30個規則詳解Oracle優化
- 效能監控方面的一些SQL語句SQL
- 【資料操作】SQL語句效能調整原則SQL
- SQL語句SQL
- (zt) Oracle語句優化30個規則詳解Oracle優化
- SQL語句IN的用法SQL
- 常用的SQL語句SQL
- 常用的SQL 語句SQL
- SQL 語句 as 的用法SQL
- oracle的sql語句OracleSQL
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- 透過ORA錯誤反思sql語句規範SQL
- 通過ORA錯誤反思sql語句規範SQL
- 轉Oracle語句優化53個規則詳解(一)Oracle優化
- 轉Oracle語句優化53個規則詳解 (二)Oracle優化
- Oracle語句最佳化53個規則詳解(2)Oracle
- sql 中的with 語句使用SQL
- SQL語句的優化SQL優化
- sql語句的簡化SQL
- 實用的SQL語句~!SQL
- Oracle資料庫SQL語句效能調整的基本原則 (3)Oracle資料庫SQL