自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server數(shù)據(jù)庫(kù)沒有JOIN條件導(dǎo)致笛卡爾乘積

數(shù)據(jù)庫(kù) SQL Server
在SQL查詢中,如果對(duì)兩張表JOIN查詢而沒有JOIN條件時(shí),就會(huì)產(chǎn)生笛卡爾乘積,從而導(dǎo)致SQL性能下降。本文我們主要就介紹了這一過(guò)程的一個(gè)案例,希望能夠?qū)δ兴鶐椭?/div>

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

發(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 

這個(gè)語(yǔ)句其實(shí)只是sql語(yǔ)句的一部分,問(wèn)題是另一部分用到了表orderform,所以from中有orderform,但是上面的這部分語(yǔ)句完全沒有用到orderform,但是不設(shè)置條件就導(dǎo)致了笛卡爾乘積。

解決方法:

使用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條件導(dǎo)致的笛卡爾乘積從而影響性能的一個(gè)案例,本文我們就介紹到這里了,希望本次的介紹能夠給對(duì)您有所收獲!

【編輯推薦】

  1. SQL Server數(shù)據(jù)庫(kù)default value的使用總結(jié)
  2. SQL Server結(jié)合Mybatis調(diào)用存儲(chǔ)過(guò)程返回結(jié)果集
  3. SQL Server數(shù)據(jù)庫(kù)獲取TEXT字段的內(nèi)容長(zhǎng)度的方法
  4. SQL Server 2008學(xué)習(xí)筆記之去重和給新加字段賦值
  5. SQL Server 2008中使用FileStream存取大文件實(shí)例介紹
責(zé)任編輯:趙鵬 來(lái)源: CSDN博客
相關(guān)推薦

2011-05-20 13:33:14

SQL

2022-11-07 08:51:24

數(shù)據(jù)庫(kù)開發(fā)笛卡爾積

2010-07-15 17:28:50

SQL Server

2011-08-03 14:50:26

SQL Server數(shù)Visual Stud.MDF數(shù)據(jù)庫(kù)文件

2010-07-08 11:05:14

SQL Server數(shù)

2021-05-17 06:57:34

SQLServer數(shù)據(jù)庫(kù)

2010-07-01 11:03:04

SQL Server轉(zhuǎn)

2021-05-08 14:07:26

SQLServer數(shù)據(jù)庫(kù)

2009-03-19 09:44:07

SQL Server數(shù)據(jù)庫(kù)遷移數(shù)據(jù)庫(kù)

2010-06-30 11:16:50

SQL Server

2011-04-01 17:05:44

SQL Server數(shù)日志

2011-04-29 14:30:23

2011-03-24 09:45:34

SQL Server數(shù)恢復(fù)

2011-03-24 09:07:11

SQL Server數(shù)備份

2011-03-24 09:24:08

SQL Server數(shù)還原

2021-03-18 08:20:19

SQLServer數(shù)據(jù)庫(kù)SQL

2011-03-21 10:13:31

Sql Server數(shù)分區(qū)

2010-08-27 09:59:51

SQL Server

2010-07-02 08:23:06

SQL Server

2010-07-14 17:49:39

SQL Server數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)