改寫一個要跑5小時的SQL成1分鐘
INSERT INTO temp_existing_links
(item_id,
link_id,
link_priority,
item_identifier)
SELECT /*+ INDEX (i IX_ITEM_6) */ i.item_id,
NULL,
NULL,
i.item_identifier
FROM item i
WHERE i.account_code = p_account_code
AND i.account_type_code = p_account_type_code
AND i.latest_ind ='Y'
AND NOT EXISTS (SELECT 1 from link, item_link WHERE link.link_id = item_link.link_id AND valid_link_ind = 'Y' AND item_id = i.item_id);
改成以下寫法:
union all 裡的第一個select用左連線表示找出沒有在item_link裡出現的item(左連線,左邊都會出現item_id,即使右邊il.item_id是null,即沒有對應的. ), 第二個表示找出link了,但valid_link_ind<>'Y' 的item. 這兩個條件就滿足了上面的判斷NOT EXISTS.
INSERT INTO temp_existing_links
(item_id,
link_id,
link_priority,
item_identifier)
(
SELECT /*+ INDEX (i IX_ITEM_6) */ i.item_id,
NULL,
NULL,
i.item_identifier
FROM item i,item_link il
WHERE i.account_code = 'CRES_20000'
AND i.account_type_code = 'TRADE'
AND i.latest_ind ='Y'
and i.item_id = il.item_id(+)
and il.item_id is null
union all
SELECT /*+ INDEX (i IX_ITEM_6) */ i.item_id,
NULL,
NULL,
i.item_identifier
FROM item i,item_link il,link l
WHERE i.account_code = 'CRES_20000'
AND i.account_type_code = 'TRADE'
AND i.latest_ind ='Y'
and i.item_id = il.item_id
and il.link_id = l.link_id
and l.valid_link_ind <> 'Y'
);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14377/viewspace-970692/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [譯] 正規表示式要跑 5 天,所以我做了個工具,只跑 15 分鐘。
- 一種提升SQL改寫效率的方法SQL
- 用js寫的一個跑馬燈JS
- 仿寫一個簡單的微信小程式(番茄鬧鐘)微信小程式
- 面試官讓我5分鐘內寫一個搶紅包程式,我和他說了半小時原理!面試
- MySQL的SQL等價改寫MySql
- 如何跑通第一個 SQL 作業SQL
- (大表小技巧)有時候 2 小時的 SQL 操作,可能只要 1 分鐘SQL
- 如何使用原生技術寫一個倒數計時時鐘
- What?一個 Dubbo 服務啟動要兩個小時!
- SQL改寫的方法,select group by sumSQL
- 美團:騎手日均跑單5-6小時 單日跑單時長滿八小時的騎手約佔20%
- DB2 SQL改寫DB2SQL
- Oracle case when改寫SQLOracleSQL
- 如何把一個吃灰的 Kindle 設定成一個墨水螢幕的時鐘 All In One
- 一個圓形時鐘
- 5個平時容易讓人忽略的Excel技巧,10分鐘幫你搞定2小時的工作Excel
- 20行程式碼寫一個簡單 Blazor 時鐘元件行程Blazor元件
- [譯] 如何在 5 分鐘之內寫出一個不錯的 loading 介面
- 5個不起眼的Excel小技巧,只需3分鐘幫你完成以往2小時的工作量!Excel
- 改進c#程式碼的5個常用的小技巧C#
- 3.三分鐘跑啟你的第一個Flutter AppFlutterAPP
- 用 Java 拿下 HTML 分分鐘寫個小爬蟲JavaHTML爬蟲
- 從兩張表中取資料的 SQL 能改寫成 Laravel Eloquent 的形式嗎?SQLLaravel
- pl/sql developer的一個小問題SQLDeveloper
- CSS 繪製一個時鐘CSS
- 開發一個不需要重寫成 Hive QL 的大資料 SQL 引擎Hive大資料SQL
- 開發一個不需要重寫成Hive QL的大資料SQL引擎Hive大資料SQL
- 5分鐘實現一個Koa
- 只需 5 分鐘,教你如何編寫並執行一個 Rust + WebAssembly 程式RustWeb
- 編寫 SQL 程式碼時常犯的九個錯誤SQL
- Pbootcms將日期時間轉換成"剛剛、幾分鐘、幾小時前"的形式boot
- 歷時一個月時間,小程式“成語猜題”版本效果圖
- spark sql在當前的時間戳下增加8個小時SparkSQL時間戳
- 開發5分鐘,除錯2小時 - 該如何debug?除錯
- 1 小時 SQL 極速入門(一)SQL
- SQL 改寫系列七:謂詞移動SQL
- SQL 改寫系列六:謂詞推導SQL
- 來安利一下,編寫現代JavaScript程式碼的5個小技巧!JavaScript