SQL/(강의) SW개발자를 위한 성능 좋은 SQL
[SW개발자를 위한 성능좋은 SQL] 의미오류(Semantic Error) 이해
keepGGoing
2023. 7. 23. 15:42
- 컬럼이 not null인데인데 ISNULL 함수를 사용하는 경우
- CHECK 조건이 있는데 중복으로 다시 확인 하는 경우
- PK가 있는데 DISTINCT 사용하는 경우
- 컬럼 LIKE 'VALUE' ==> 불필요하게 LIKE 사용 '=' 사용해야함
- EXISTS (SELECT DISTINCT ~ ) --> 불필요하게 DISTINCT 함
- ORDER BY에에 PK가 있는 경우 다른 컬럼을 사용할 필요 X
- SELECT .. GROUP BY ShipCountry Having ShipCountry IN ('USA', 'Switzerlan') 는 Having 이 아닌 Where 절에 왔어야 함.
- 중복 할 데이터가 없는데 UNION 사용하는 경우 -> UNION ALL 로 해주는게 좋아
옵티마이저가 수정해주긴하는데
쿼리 작성할 때 명시해주는게 좀 더 좋아 - 불필요한 조인은 피해라
- Where 컬럼명A NOT IN (Select 컬럼B From 테이블) 에서 컬럼B가 NULL인 경우 :
해당 조건은 확인 불가 쿼리가 됨! -> 아예 결과 안나와
** 의미오류는 잠재적인 성능 이슈를 갖고 있다.
-> 옵티마이저가 자동으로 성능 문제 해결해주기는 하지만, 오류 없도록 쿼리 작성하는게 좋습니다.