n번 조회 하는 방법과, in으로 조회하는 방법 중 더 좋은것은 무엇일까요? 0 2 3,541

by 생각하쟈 [2023.12.01 17:31:20]


db는 오라클19c입니다.

방법1 


for(int i=0;i<KeyList;i++)
{
변수 = 변수 +' keyList[i]'
}
// 변수가 'key1','key2','key3' 이렇게 되었다고 가정

SELECT
*
FROM
TABLE A
WHERE
KEY IN ( 변수 )

방법2

for(int i=0;i<KeyList;i++)
{

KEYNAME = keyList[i]

SELECT
*
FROM
TABLE A
WHERE
KEY = KEYNAME

// keyList 만큼 쿼리 조회

}


첫번째 방법은 한번 쿼리를 하는 대신 쿼리가 유동적으로 바뀌고, 밑에 쿼리는 쿼리문은 똑같고 여러번 수행하는 차이인데요

첫번째 방법처럼 하면 하드 파싱이 일어나서 하지말라고 배웠는데... 

두번째 방법이 더 좋을까요.?

감사합니다.

좋은 하루 되세요.

by 마농 [2023.12.01 19:52:49]

장단점이 있겠죠.
1번 : 동적쿼리, 바인드 변수 미사용, 1번 콜, 매번 하드 파싱
2번 : 바인드 변수 사용, 여러번 콜, 소프트 파싱
상황에 따라 다릅니다.
동적쿼리가 무조건 나쁜 것 만은 아닙니다.
매우 자주 호출되는 쿼리라면 쿼리를 재사용하는 2번이 맞고
대용량 쿼리로 가끔 사용되지만 성능이 필요한 경우 1번이 맞습니다.


by 생각하쟈 [2023.12.04 08:30:07]

답변감사합니다

마농님!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입