1. 程式人生 > >ORACLE資料庫查詢語句使用注意事項

ORACLE資料庫查詢語句使用注意事項

2、儘量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。

3、不用NOT IN操作符,可以用NOT EXISTS或者外連線+替代。

4、Oracle在執行IN子查詢時,首先執行子查詢,將查詢結果放入臨時表再執行主查詢。而EXIST則是首先檢查主查詢,然後執行子查詢直到找到第一個匹配項。NOT EXISTS比NOT IN效率稍高。但具體在選擇IN或EXIST操作時,要根據主子表資料量大小來具體考慮。

5、不用"<>"或者"!="操作符。對不等於操作符的處理會造成全表掃描,可以用"<" or ">"代替。

6、Where子句中出現IS NULL或者IS NOT NULL時,Oracle會停止使用索引而執行全表掃描。可以考慮在設計表時,對索引列設定為NOT NULL。這樣就可以用其他操作來取代判斷NULL的操作。

7、當萬用字元"%"或者"_"作為查詢字串的第一個字元時,索引不會被使用。

8、對於有連線的列"||",最後一個連線列索引會無效。儘量避免連線,可以分開連線或者使用不作用在列上的函式替代。

9、如果索引不是基於函式的,那麼當在Where子句中對索引列使用函式時,索引不再起作用。

10、Where子句中避免在索引列上使用計算,否則將導致索引失效而進行全表掃描。

11、對資料型別不同的列進行比較時,會使索引失效。

12、用">="替代">"。

13、UNION操作符會對結果進行篩選,消除重複,資料量大的情況下可能會引起磁碟排序。如果不需要刪除重複記錄,應該使用UNION ALL。

14、Oracle從下到上處理Where子句中多個查詢條件,所以表連線語句應寫在其他Where條件前,可以過濾掉最大數量記錄的條件必須寫在Where子句的末尾。

15、Oracle從右到左處理From子句中的表名,所以在From子句中包含多個表的情況下,將記錄最少的表放在最後。(只在採用RBO優化時有效)

16、Order By語句中的非索引列會降低效能,可以通過新增索引的方式處理。嚴格控制在Order By語句中使用表示式。

17、不同區域出現的相同的Sql語句,要保證查詢字元完全相同,以利用SGA共享池,防止相同的Sql語句被多次分析。

18、多利用內部函式提高Sql效率。

19、當在Sql語句中連線多個表時,使用表的別名,並將之作為每列的字首。這樣可以減少解析時間。

相關推薦

ORACLE資料庫查詢語句使用注意事項

2、儘量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。 3、不用NOT IN操作符,可以用NOT EXISTS或者外連線+替代。 4、Oracle在執行IN子查詢時,首先執行子查詢,將查詢結果放入臨時表再執行主查詢。而EXIST則是首先檢查主查詢,然後執行子查詢直到找到第一個匹配項。NOT

ORACLE資料庫-查詢語句SELECT

---------查詢語句 --完整語法描述: --SELECT [ALL|DISTINCT] TOP n[PERCENT] WITH TIES select_list --[INTO[new table name]] --[FROM{table_name|view_nam

gbase,hive,teradata,db2,oracle資料庫查詢欄位資訊,型別,註釋的sql語句.

之前整理了常用的5種資料庫查詢欄位的sql語句 在這裡分享給大家: ********************************************************************** hive  查詢欄位資訊語句 : desc 資料庫名.表名  

資料庫查詢語句oracle查詢一個表中欄位相同資訊的個數並按個數排序

表名:hotsearch    欄位:hotword select distinct hotword, count(hotword) from hotsearch group by hotword order by count(hotword) desc;

oracle 基本查詢語句及實例

空值 into microsoft clas 運算 cor select like sse 1、查詢所有列 select * from 表名; 2、查詢表結構 desc 表名; 3、查詢指定列 select ename,sal,job from 表名; 4、rac

oracle 層次查詢語句

oracle connect by/start with Oracle中層次查詢語法: select ... [level | connect_by_root |connect_by_isleaf |connect_by_iscycle ] from table_nam

oracle常用查詢語句

空間 use ble tables sele file table space name 1.查看表空間:SELECT total.tablespace_name,Round(total.MB, 2) AS Total_MB,Round(total.MB

oracle資料庫查詢某個表的欄位資訊

(1)查詢整個資料庫所有表的欄位 select t.column_name from user_col_comments t;(一般建議去執行,因為資料庫表過多執行起來會非常的慢) (2)查詢特定表名的表字段 select t.column_name, t.column_name&nbs

Android Sqlite資料庫升級時注意事項

在app版本升級時,同時升級了Sqlite資料庫的版本號的話,如果需要保留之前的資料,需要在onUpgrade方法中做處理。這裡記錄一下在onUpgrade處理升級的時候的一些注意事項。 先看下常用的SQLiteOpenHelper的方法: public class Database

ORACLE查詢語句的執行順及where部分條件執行順序測試 Oracle中的一些查詢語句及其執行順序 Select 語句執行順序以及如何提高Oracle 基本查詢效率

Oracle中的一些查詢語句及其執行順序 原文地址:https://www.cnblogs.com/likeju/p/5039115.html 查詢條件:1)LIKE:模糊查詢,需要藉助兩個萬用字元,%:表示0到多個字元;_:標識單個字元。2)IN(list):用來取出符合列表範圍中的資料。3)NOT I

Oracle資料庫——查詢(select)操作——單表查詢

最簡單查詢方式 查詢表中所有記錄的所有欄位資料: select */1 from 表名; select * from dep; 查詢制定欄位 只查詢emp表中員工的 ID,姓名,工資,獎金這四個欄位 select empid,ename,esalary,com

Oracle資料庫——查詢(select)操作——多表查詢

內連線 select * from 表名 (別名) (inner) join 表名 (別名) on 連線條件 連線emp表和dep表(emp表中與dep表中的did是關聯欄位,這樣查詢did會出現2次): select * from emp,dep where emp

資料庫 DQL 資料庫查詢語句

目錄 2.1 比較 等值連線 DQL:資料查詢語言         操作物件:記錄(行)         關鍵字:select 符號約定:     <>

資料庫查詢語句例項

  1. 查詢最晚入職員工的所有資訊 表結構如下: CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) N

oracle資料庫 SQL語句、內建函式大全

  1、數值函式      函式      返回值             樣例            顯示     CEIL(n)      大於或等於數值n的最小整數  SELECT CEIL(10.6) FROM TABLE_NAME; 11     FLOO

Oracle資料庫SQL語句(上)

一、 建立表空間 create tablespace itheima datafile 'C:\itheima.dbf' size 100m autoextend on next 10m; 二、 建立使用者 create user itshunzi ident

OCP-1Z0-051 補充題庫 第5題 主查詢和子查詢注意事項

Which three statements are true regarding sub queries? (Choose three.)A. Multiple columns or expressions can be compared between the main query and sub que

Oracle查詢注意問題

1.    子查詢中小括號,子查詢要用()包起來 select * from emp where sal>(select * from emp where ename=’likang’) 2.    Oracle子查詢書寫風格 縮緊、對齊、換行等等,便於觀察 3.  

Python oracle資料庫查詢結果以字典形式儲存,取多條結果記錄數的實現

方法: def executeSQL(self,sql,params): conn = self.connectDB() conn = self.cursor try: self.r = conn.execute(sql,params) s

SQL程式設計之高階查詢注意事項

1.什麼是子查詢? 當一個查詢是另一個查詢的條件時,稱之為子查詢。子查 詢可以使用幾個簡單命令構造功能強大的複合命令。子查詢最常用於SELECT-SQL命令的 WHERE子句中。子查詢是一個 SELECT 語句,它巢狀在一個 SELECT、SELECT...INTO 語句、INSERT...INTO 語句、