當心外部連線中的ON子句

2021-09-08 02:42:04 字數 912 閱讀 8550

在sql tuning中,不良寫法導致sql執行效率比比皆是。最近的sql tuning中乙個外部連線寫法不當導致過sql執行時間超過15分鐘左右此即

為一例。通過修正該sql的寫法之後,過高的邏輯讀呈數量級下降以及sql語句執行時間也大幅下降。下面給出乙個列子來演示該情形。

一、建立演示環境

二、總結

1、盡可能避免sql不良寫法導致的不良後果

2、此例中由於將謂詞資訊放到on子句中,在資料量龐大的表(百萬行)連線中,則該寫法導致過多的物理和邏輯i/o,使得中間結果集龐大

3、謂詞資訊放到on子句中同時也導致索引失效

4、盡可能的在滿足需求的情況下減小中間結果集

三、更多參考

父游標、子游標及共享游標

繫結變數及其優缺點

dbms_xplan之display_cursor函式的使用

dbms_xplan之display函式的使用

執行計畫中各字段各模組描述

使用 explain plan 獲取sql語句執行計畫

啟用 autotrace 功能

函式使得索引列失效

oracle 繫結變數窺探

oracle 自適應共享游標

oracle rowid 

收縮表段(shrink space)

臨時表空間的管理與受損恢復

oracle 徹底 kill session

oracle 硬解析與軟解析

共享池的調整與優化(shared pool tuning)

buffer cache 的調整與優化(一)

buffer cache 的調整與優化(二)

oracle 表快取(caching table)的使用

pga的設定與調整

當心外部連線中的ON子句

在sql tuning中,不良寫法導致sql執行效率比比皆是。最近的sql tuning中乙個外部連線寫法不當導致過sql執行時間超過15分鐘左右此即 為一例。通過修正該sql的寫法之後,過高的邏輯讀呈數量級下降以及sql語句執行時間也大幅下降。下面給出乙個列子來演示該情形。一 建立演示環境 二 總...

連線查詢中的ON 子句和 WHERE 子句

先看兩張表結構 produc表 問題是下面兩個查詢結果有什麼不同 1.select from product left join product details on product.id product details.id and product details.id 2 2.select fr...

oracle中cube rollup子句的用法

cube子句在dw環境用的比較多,特別是在產生交叉報表的情況,演示乙個cube的例子 sql 10g create table test sales varchar2 10 dest varchar2 10 revenue number table created.sql 10g insert in...