1. 데이터 조회 할 때 조인을 하는게 좋을까요?
- 대부분 질문과 답변을 보면 조인은 3개이상 테이블은 피하라는다..
2. 데이터 조회 할 때 WHERE 절에 들어가야할 조건들이 5개정도 되고
그테이블도 4개 정도 되는데 조인 걸지 않고 조회를 하려면
어떤 방법으로 하고 있는지 궁굼합니다.
- 저는 조회 조건대로 테이블에 자료를 전체 READ 하여 나머지 테이블에도 받은 조건데로
조건에 대하여 READ 하여 1번 테이블에 검색된 조건을 가지고 2,3,4 테이블에 자료를 만족하면
다른 테이블에 APPEND 하는 방식으로 씆는 않겠죠?
3. 테이블이 5개 정도이면서 조건으로 조회 할 땐 5개 테이블이 전부 필요할 경우
어떤 방법으로 프로그램 하는지 궁굼합니다.
* e-abap님에 의해서 게시물 복사되었습니다 (2010-01-09 13:44)
* e-abap님에 의해서 게시물 이동되었습니다 (2010-01-09 13:55)
댓글 3
-
im 해성
2010.01.01 18:29
-
Jon
2010.01.03 10:54
미천하나마 글달아봅니다.
1. 3개이상 조인 하지말라는 건 없습니다. 개발에서 튜닝 입장에서 볼때는 . 조인이 최상입니다.
데이터 버퍼까지 생각한다면,, 어떤 경우가 될지는,, 상황에 맞게 해야합니다.
header , item 테이블이 있다면, header 테이블 부터 드라이브 되도록하는게 좋습니다.
(데이터 건수가 더 적기 때문) 가끔 join 보다 loop가 더 좋을 경우도 있기에, 실제로 돌려보아야하구요.
2. 1번에 말했지만, 기본적으로는 최상이 loop 보다는 join입니다. 당연히 해당 데이터에 따라 다를수 도 있습니다. 데이터 량에 따라 달라지겟지요.
버퍼가 되어 있는 테이블이 있다면, 조인에서 빼는것도 좋습니다.또,read table할 경우라면, binary search도 넣어주시고,재고ballance 리스트 뽑는다면, append해야 될 경우도 있겟지요.
뭐라 답변 달수는 없을듯합니다.
3. view(속도는 동일함) 또는 summery table 이 최상일듯...
st05 sql 테스트 하시고, native sql로 sql문 작성하세요.
se30 ,st12 , st04 등 이용하세요.
im 해성님. se30은 abap trace 입니다. -
JG
2010.01.04 20:10
어떤게 정답이라는게 없습니다. 데이터의 양과 시스템.. 여러 가변적이 조건들이 있다보니.. 조인과 개별적으로 데이터를 가져오는 걸 비교해보시고 가장 빠른쪽을 채택하시는게 정답일 듯 싶습니다. 속도가 빠른게 장땡이죠. ^^.
손이 나가는대로 하세요. 테스트 프로그램 작성하여서 se30으로 테스트 하세요.