반응형 #바인드변수1 Mybatis #사용시 속도가 느려지는 현상 1. 오라클에서 직접 실행하면 빠른데 Mybatis에서 느린경우: 너무 느린 쿼리를 로그에서 카피해서 오라클등에 실행해보면 빠르게 나올수 있다. 오라클에서 :변수 (앞에 세미클론) 로 해서 실행하면 마이바티스에서 실행하는 것처럼 PreparedStatement로 작동하기 때문에 이렇게 속도체크를 해봐야한다. #을 사용하게 되는경우는 내부적으로 PreparedStatement로 작동하기 때문에 옵티마이저가 바인드변수로 처리한다. 바인드 변수로 처리하는건 오라클에서 적극 권장하는 방식이지만 특정한 몇가지 경우 옵티마이저가 이상행동을 한다. 예를들어 바인드 변수의 사용시 조건절의 컬럼에 인덱스가 있더라도 varchar2형에 숫자형을 바인드변수로 비교하게되면 인덱스가 있는 컬럼쪽이 to_number()로 형변환.. 2021. 2. 3. 이전 1 다음 반응형