SQL/(강의) SW개발자를 위한 성능 좋은 SQL

[SW개발자를 위한 성능좋은 SQL] 의미오류(Semantic Error) 이해

keepGGoing 2023. 7. 23. 15:42
  1. 컬럼이 not null인데인데 ISNULL 함수를 사용하는 경우
  2. CHECK 조건이 있는데 중복으로 다시 확인 하는 경우
  3. PK 있는데 DISTINCT 사용하는 경우
  4. 컬럼 LIKE 'VALUE'  ==> 불필요하게 LIKE 사용 '=' 사용해야함
  5. EXISTS (SELECT DISTINCT ~ ) --> 불필요하게 DISTINCT
  6. ORDER BY에에 PK 있는 경우 다른 컬럼을 사용할 필요 X
  7. SELECT .. GROUP BY ShipCountry Having ShipCountry IN ('USA', 'Switzerlan') 는 Having 아닌  Where  절에 왔어야 .
  8. 중복 할 데이터가 없는데 UNION 사용하는 경우 -> UNION  ALL 로 해주는게 좋아
    옵티마이저가 수정해주긴하는데
    쿼리 작성할 명시해주는게 좋아
  9. 불필요한 조인은 피해라
  10. Where 컬럼명A NOT IN (Select 컬럼B From 테이블) 에서 컬럼B가 NULL 경우 :
    해당 조건은 확인 불가 쿼리가 ! -> 아예 결과 안나와

 

** 의미오류는 잠재적인 성능 이슈를 갖고 있다.

-> 옵티마이저가 자동으로 성능 문제 해결해주기는 하지만, 오류 없도록 쿼리 작성하는게 좋습니다.