簡單的sql查詢優化

2021-07-03 02:34:55 字數 933 閱讀 2192

1、sql中禁止用select *  from 的寫法 (缺點:將會增加服務區io的輸出負擔)

2、如果乙個sql比較複雜 則寫完的sql 可以用 在plsql 中用f5 來看起執行計畫,

例如sql

select

* from

exp_booking

where

booking_id like

'%1231231231%'

在執行計畫中如果看到 table accessfull 這種標記務必注意,此標記代表全表訪問,如果您的表有上百萬資料,那麼其將會對資料庫造成非常大的io讀取瓶頸,則需要對其sql進行優化,使其走索引,例如

select

* from

exp_booking

where

booking_id =

'1231231231'

此種狀態代表執行sql 走了相應的索引,則我們可以看到後面的cost 為2,其消耗cup的效能比較小

3、禁止寫破壞索引的sql語句,以下情況為不能使用索引的寫法

(1)在where條件中使用函式

如:where substr(……  欄位為字元型的查詢whereinstate=』5』 ;instate=5 會用to_number

(2)>;not in;like %_開頭不走索引 。 >=between,in,like不以%_開頭使用索引

(3)建立的索引欄位中,不能有空值

(4)or 不走索引  查詢是可以用 selectid from ….. union all select if from ……

(5)不要用 wm_contact

(6)按id插入多條記錄時不要用迴圈,

要用 insert intotable2(field1,field2,...) select value1,value2,... from table1

查詢優化 SQL優化

查詢優化注意點 代表查詢速度比較 1 所有查詢必須注意 的使用必要性 cout 1 cout 2 字段 主鍵索引 字段 普通索引 字段 沒有索引 3 乙個字段 多個字段 欄位多越慢 4 大於10000和大於10001的區別 後者大於前者 5 列沒別名 列 有別名6 兩個條件,where時應該將符合資...

SQL的查詢優化

從表連線的角度優化 內連線 外連線 交叉連線 使用儲存過程取代暫時寫sql語句 從索引角度優化 對經常使用的查詢字段建立索引。這樣查詢時只進行索引掃瞄,不讀取資料塊。1.避免在where子語句中對字段進行null判斷 建立資料庫是限定not null,用 ult賦預設值 2.避免在where子語句中...

查詢優化 sql

查詢1 declare d datetime set d getdate select top 1000 from product where contains name,男上裝 or contains text,男上裝 select datediff ms,d,getdate set d getd...