最近遇到一個(gè)存儲(chǔ)過程在某些特殊的情況下,效率極其低效(同時(shí)服務(wù)器CPU資源占用急劇上升,導(dǎo)致整個(gè)服務(wù)器相應(yīng)緩慢)
  至于底下到什么程度我現(xiàn)在都沒有一個(gè)確切的數(shù)據(jù),因?yàn)轭A(yù)期很快就可以查詢出來結(jié)果的SQL,實(shí)則半個(gè)小時(shí)都出不來,后面會(huì)有截圖
  觀察執(zhí)行計(jì)劃的時(shí)候發(fā)現(xiàn)中間有一步中出現(xiàn)一個(gè)類似如下非常規(guī)的連接提示警告,如下圖

  電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

 

  no join predicate 意思就是沒有連接謂詞,表之間join的時(shí)候沒有指定連接謂詞可以導(dǎo)致no join predicate,
  但是反過來也是一定成立的嗎,明明寫了連接條件,仍舊提示no join predicate,為什呢?
  下面先從no join predicate 入手開始,說明什么時(shí)候會(huì)出現(xiàn)no join predicate ,以及原因和解決辦法。

 

 

 1,未指定連接條件下導(dǎo)致的no join predicate 

  兩個(gè)表在沒有指定連接條件的情況下,做運(yùn)算的結(jié)果是計(jì)算器笛卡爾積,當(dāng)然是沒有連接謂詞的,提示no join predicate 也很容易理解
  上一段簡(jiǎn)單的代碼演示一下,如下創(chuàng)建兩張表,#t1,#t2,至于測(cè)試數(shù)據(jù)為什么是這樣子,我下面會(huì)繼續(xù)做解釋

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式