最近遇到一個存儲過程在某些特殊的情況下,效率極其低效(同時服務(wù)器CPU資源占用急劇上升,導(dǎo)致整個服務(wù)器相應(yīng)緩慢)
至于底下到什么程度我現(xiàn)在都沒有一個確切的數(shù)據(jù),因為預(yù)期很快就可以查詢出來結(jié)果的SQL,實則半個小時都出不來,后面會有截圖
觀察執(zhí)行計劃的時候發(fā)現(xiàn)中間有一步中出現(xiàn)一個類似如下非常規(guī)的連接提示警告,如下圖
no join predicate 意思就是沒有連接謂詞,表之間join的時候沒有指定連接謂詞可以導(dǎo)致no join predicate,
但是反過來也是一定成立的嗎,明明寫了連接條件,仍舊提示no join predicate,為什呢?
下面先從no join predicate 入手開始,說明什么時候會出現(xiàn)no join predicate ,以及原因和解決辦法。
1,未指定連接條件下導(dǎo)致的no join predicate
兩個表在沒有指定連接條件的情況下,做運算的結(jié)果是計算器笛卡爾積,當(dāng)然是沒有連接謂詞的,提示no join predicate 也很容易理解
上一段簡單的代碼演示一下,如下創(chuàng)建兩張表,#t1,#t2,至于測試數(shù)據(jù)為什么是這樣子,我下面會繼續(xù)做解釋
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26