개발일기

0306_ 정적쿼리 vs 동적쿼리

포로리33 2023. 3. 20. 15:03
  • 정적 쿼리

       쿼리의 형태가 일정하다.

       변수에 다른 값이 와도 쿼리문이 변경되지 않는다.

SELECT *
FROM   TABLE
WHERE  1 = 1
AND    key = #변수#

 

  • 동적쿼리

       변수에 따라 쿼리문이 달라질 수 있다.

       아래 예문에서 변수값이 만약 주어지지 않는다면 조건절에는 1 = 1 만 남게 된다.

       동적쿼리로 작성하면 SP(Stored Prodedure)가 새로 캐싱되기 때문에 재사용성이 떨어진다.

SELECT *
FROM   TABLE
WHERE  1 = 1
IF(#변수# != ''){
   AND key = #변수#
}