안녕하세요~!
특정 쿼리의 실행시간이 오래 걸려서 이것저것 시도를 해보았는데요. 바인드 되는 원리가 궁금해서 질문드립니다.
해당 sql은 약 1200줄 정도의 SELECT 쿼리입니다. 해당 쿼리의 바인드 변수값이 3개가 들어가는데요.
이 상태에서 소스를 돌리면 총 6초가 소요가 됩니다.
실행시간이 왜이렇게 오래걸릴까 고심한 끝에 아래와 같은 방법으로 테스트를 해보았습니다.
바인드 변수에 직접 바인드 변수값을 대체하여 소스를 돌리면 1초가 소요됩니다.
이러한 현상을 보고 이런 생각을 해보았습니다.
SELECT를 수행하게 되면 바인드 변수값이 있을 경우 parse->bind->execute 되는 것이 총 6초이고,
바인드 변수에 직접 값을 박아서 수행하면 parse->execute만 되어 총 1초가 걸리는 것 같다고 생각을 했습니다. 즉 bind 되는값이 굉장히 오래 걸린다라는 생각을 했습니다.(5초)
혹시 쿼리가 굉장히 길어지면 bind 되는 시간이 원래 오래 걸리는건가요? bind 되는 시간을 줄이고 싶은데 어떻게 해야 할까요?
답변 부탁드립니다 ㅜㅜ 감사합니다^^ |