오라클 쿼리에 기본으로 where 1=1을 넣으면 속도에 영향을 줄까요. 1 2 2,453

by 나그네 [2015.08.23 21:23:39]


현재 스프링에 오라클 게시판 만들고 있습니다.

검색어가 넘어오면 and content like '%검색어%' 이런 where절을 변수에 담고

변수를 검색쿼리의 where 1=1 뒤에 포함시켰습니다.

검색어가 안넘어와도 기본적으로 검색쿼리에는 where 1=1 을 붙여놓았습니다.

자료가 많아진다면 속도가 떨어질까요?

참고말씀 주십시오.

by 마농 [2015.08.24 06:45:39]

상관 없습니다.


by jkson [2015.08.24 07:33:33]

where 1 = 1 을 쓰는 이유는 유동적인 쿼리 만들 때 편하게 쿼리 만들려는 게 가장 큰 이유이고 쿼리 속도에는 영향이 없어요.

 

예를 들어

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sQuery = "select ..                \r\n"
       + "  from                   \r\n"
       + " where 1 = 1             \r\n";
 
if (조건)
{
sQuery = sQuery +
         " and acol = '12345'      \r\n";
}
else if (조건)
{               
sQuery = sQuery +
         " and acol = '54321'      \r\n";
}
sQuery = sQuery +
         " and bcol = 'abcde'      \r\n";

if 조건에 해당하는 것들이 없어서 select 문 뒤에 바로 and.. 구문이 나와도

쿼리 오류가 나지 않죠.

where 1 = 1을 해놓지 않고 if문 만으로 쿼리를 만들려면 where 구문까지

생각하고 만들어야 하니 if문이 복잡해지겠죠.

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