日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer數(shù)據(jù)庫沒有JOIN條件導致笛卡爾乘積

SQL Server數(shù)據(jù)庫中,我們常常用到JOIN條件來對數(shù)據(jù)庫進行連接查詢,需要注意的一個問題就是沒有JOIN條件會導致的笛卡爾乘積的問題。學過線性代數(shù)的人都知道,笛卡爾乘積通俗的說,就是兩個集合中的每一個成員,都與對方集合中的任意一個成員有關聯(lián)??梢韵胂螅赟QL查詢中,如果對兩張表JOIN查詢而沒有JOIN條件時,就會產(chǎn)生笛卡爾乘積。這就是我們的笛卡爾乘積導致的性能問題中最常見的案例:開發(fā)人員在寫代碼時遺漏了JOIN條件。

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站制作、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的阿魯科爾沁網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

發(fā)生笛卡爾乘積的sql:

 
 
 
  1. select sum(project_fj.danjia*project_fj.mianji) from project_fj,orderform  
  2. where project_fj.zhuangtai='未售' and project_fj.project_id=30 

這個語句其實只是sql語句的一部分,問題是另一部分用到了表orderform,所以from中有orderform,但是上面的這部分語句完全沒有用到orderform,但是不設置條件就導致了笛卡爾乘積。

解決方法:

使用LEFT JOIN

 
 
 
  1. select sum(project_fj.danjia*project_fj.mianji) from project_fj LEFT JOIN orderform ON project_fj.id=orderform.project_id    
  2. where project_fj.zhuangtai='未售' and project_fj.project_id=30 

以上就是SQL查詢中沒有JOIN條件導致的笛卡爾乘積從而影響性能的一個案例,本文我們就介紹到這里了,希望本次的介紹能夠給對您有所收獲!

【編輯推薦】

  1. SQL Server數(shù)據(jù)庫default value的使用總結(jié)
  2. SQL Server結(jié)合Mybatis調(diào)用存儲過程返回結(jié)果集
  3. SQL Server數(shù)據(jù)庫獲取TEXT字段的內(nèi)容長度的方法
  4. SQL Server 2008學習筆記之去重和給新加字段賦值
  5. SQL Server 2008中使用FileStream存取大文件實例介紹

網(wǎng)站標題:SQLServer數(shù)據(jù)庫沒有JOIN條件導致笛卡爾乘積
URL地址:http://www.5511xx.com/article/cojioeh.html