9 테이블에서 INNER JOIN을 사용하는 SQL 명령을 만들었습니다. 어쨌든이 명령은 매우 오랜 시간 (5 분 이상)이 걸립니다. 그래서 내 사람들은 내가 알고 있더라도 LEFT JOIN의 성능이 더 좋기 때문에 INNER JOIN을 LEFT JOIN으로 변경하도록 제안했습니다. 변경 후 쿼리 속도가 크게 향상되었습니다.
LEFT JOIN이 INNER JOIN보다 빠른 이유를 알고 싶습니다.
아래처럼 내 SQL 명령의 모양을
SELECT * FROM A INNER JOIN B ON ... INNER JOIN C ON ... INNER JOIN D등
업데이트 : 이것은 내 스키마에 대해 간략히 설명합니다.
FROM sidisaleshdrmly a -- NOT HAVE PK AND FK
INNER JOIN sidisalesdetmly b -- THIS TABLE ALSO HAVE NO PK AND FK
ON a.CompanyCd = b.CompanyCd
AND a.SPRNo = b.SPRNo
AND a.SuffixNo = b.SuffixNo
AND a.dnno = b.dnno
INNER JOIN exFSlipDet h -- PK = CompanyCd, FSlipNo, FSlipSuffix, FSlipLine
ON a.CompanyCd = h.CompanyCd
AND a.sprno = h.AcctSPRNo
INNER JOIN exFSlipHdr c -- PK = CompanyCd, FSlipNo, FSlipSuffix
ON c.CompanyCd = h.CompanyCd
AND c.FSlipNo = h.FSlipNo
AND c.FSlipSuffix = h.FSlipSuffix
INNER JOIN coMappingExpParty d -- NO PK AND FK
ON c.CompanyCd = d.CompanyCd
AND c.CountryCd = d.CountryCd
INNER JOIN coProduct e -- PK = CompanyCd, ProductSalesCd
ON b.CompanyCd = e.CompanyCd
AND b.ProductSalesCd = e.ProductSalesCd
LEFT JOIN coUOM i -- PK = UOMId
ON h.UOMId = i.UOMId
INNER JOIN coProductOldInformation j -- PK = CompanyCd, BFStatus, SpecCd
ON a.CompanyCd = j.CompanyCd
AND b.BFStatus = j.BFStatus
AND b.ProductSalesCd = j.ProductSalesCd
INNER JOIN coProductGroup1 g1 -- PK = CompanyCd, ProductCategoryCd, UsedDepartment, ProductGroup1Cd
ON e.ProductGroup1Cd = g1.ProductGroup1Cd
INNER JOIN coProductGroup2 g2 -- PK = CompanyCd, ProductCategoryCd, UsedDepartment, ProductGroup2Cd
ON e.ProductGroup1Cd = g2.ProductGroup1Cd
coUOM합니까? 그렇지 않으면 세미 조인을 사용할 수 있습니다. 그렇다면UNION대안 으로 사용할 수 있습니다 . 귀하의FROM조항 만 게시하는 것은 여기에 부적절한 정보입니다.