질문 드립니다...
제가 oracle SQL 을 주로 사용하였는데요
ABAP 에서는 한번의 SQL 한방 Query 보다는
Main Query 의 Data 를 가져와서
그 Data 를 활용하여
계속적으로 연계된 Data를 이끌어 내는 형식으로 많이 사용하는것 같은데요
그렇게 하는 것이 속도면에서 잇점이 있기 때문인가요 ?
그리고
사용 측면에서 다를 수도 있겠지만,
if 문과 case 문 중 어느 것이 장점이 많은 것인지 문의 드립니다
죄송합니다 ㅜㅜ
초보라서 너무 막연한 질문인 것도 같습니다...
댓글 7
-
Risky
2010.06.15 18:11
T-cd:SE30으로 확인해 보세요. -
無念군
2010.06.15 20:23
if 문이나 case문이나 ..
조건문(if) , 조건 분기문(case) ㅡ_ㅡ? <<< 이게 맞는지 모르겟지만..
대부분
참 or 거짓 등 .. 단순 논리에 사용하는 구문이 if 문이고..
동일 key 값에 잡다한게 이거저거 걸리는 경우에 case 문을 쓰기는 하지만...
개발하시는분 성향이라고 이야기 드릴까요??
그다지 크게 .. 차이는 없을듯 하네요 .... if 문 또한 elseif 등으로 여러조건 삽입이 가능하긴 하니깐용...
가독성 차원이라면.....
if 구문 - 단순 3~ 5개 이하?
case 구문 - 5개 이상 ~~~
정도 겠네요 ...
퍼포먼스 부분은 .. Risky 님 말씀 처럼 동일한 내역을 T-code: SE30 으로 확인해 보시는 편이 훨씬 빠를듯 합니다 ...
-
모포
2010.06.15 21:36
저랑 똑같은 의문을 갖고 계셨네요.
제 생각엔 OPEN SQL의 한계와 DB 부하를 최대한 줄이려 그런것 같습니다.
DB 시스템이 받쳐주고 한방 쿼리를 날릴 수 있는 조건이라면 굳이 피해갈 이유가 없지 않을까요?
-
activeman
2010.06.16 08:57
open sql의 목적은 db에 부하를 줄여주고 db에서 data를 빠르게 가져오기 위한 것이라고 생각됩니다.
그래서 sap에서 테이블의 키값을 단순화 해서 쿼리를 간단히 해서 자료를 가져온후 application에서 데이터를 처리
하는 방식을 이용하지 않나 하는 생각을 해봅니다. 오라클 db에서 사용하는 복잡한 쿼리문 대신에 open sql(물론 sap이 여러 db를
사용하기 때문에 단순한 쿼리가 필요하겠습니다만....그게 open sql을 사용하는 주된 이유가 아닐까요?)을 권장하지 않을까라는
생각을 해봅니다. 즐밥하세요..
-
신동욱
2010.06.16 18:59
퍼포먼스 측면에서는 당연히 Case문이 낫죵ㅋ
만약 분기를 여러 개로 할 경우,
if문을 쓰게 된다면 if, elseif~ elseif~ endif. 이런식으로 분기해준 부분을 다 거치면서 조건에 맞는 부분에 대하여 제어를 하지만,
case 같은 경우는 다이렉트로 해당 조건을 만족하는 when 절로 이동하여 구문을 실행하게 됩니다.
-
야생이
2010.06.16 22:22
if 와 case는 쓰기 나름이지만
어떤값이 도 or 모 만 있다면 if 문이 좋을테고
도, 개, 걸, 윷, 모가 모두 있다면
case가 사용하기 좋을꺼라 생각됩니다.
-
데이비듀
2010.06.26 02:09
1. IF vs CASE
=> CASE 문이 더 좋습니다.
RSHOWTIM 을 실행해 보시면 SAP 퍼포먼스 비교해주는 샘플 프로그램입니다. 확인해 보세요.
2. 쿼리 관련
SAP에서 퍼포먼스의 이유로 추천 하는 방식이 DB 서버와의 IO를 최소화 하라고 권장합니다.(TUTORIAL이나 SDN에서 확인 하세요).
그래서 쿼리시에도 SELECT ~ ENDSELECT 도 사용을 자제시키고, ARRAY FETCH를 권장합니다.
그리고 메모리상에 일단 가져와서 가공 처리 하는게 더 빠릅니다.