조회 쿼리 안에 사용 관련 하여 궁금한 사항이 있어 문의 드립니다. 1 6 717

by 달라쏭 [SQL Query] [2018.08.23 16:05:08]


공통적으로 쓰는 코드 테이블은 어딜가나 다 있을거라 생각합니다.

CODE DESCRIPTION

1000   주문 

2000   주문 완료 

이런식으로요. 

그리고 실제 주문 테이블에 주문상태 필드에는 '1000' 값이 들어 가겠죠.

어드민등 내역을 보여주는 쿼리를 작성하실때.

코드와 코드명을 매핑시켜주는 함수를 만들어서 사용하시는지..

아니면 일일이 코드 테이블을 서브쿼리를 사용하여. 사용 하시는지요?

클릭수가 많거나 조회양이 많은 메뉴에서 함수를 쓰면 오히려 안좋다는 내용을 본거 같아서요. ㅜㅜ

감사합니다.  

by 열심열심 [2018.08.23 16:17:50]

제가 여러 사이트 쿼리 볼땐 다 함수로 처리 되어 있었어요. 

저도 궁금하긴 한데 join형식으로 불러오면 부하가 심한지

아님 하드코딩해서 decode로 하면 관리측면 말고 속도 측면에서 느린지도 궁금하네요 


by 달라쏭 [2018.08.23 16:24:14]

하드 코딩 해서 DECODE 를 하면 느릴일이 있나요? ㅎㅎ 음.


by 우리집아찌 [2018.08.23 17:09:17]

DECODE 처리할께 10만개면요?

아마 쿼리 파싱만 몇분이상 걸릴거 같은데요..


by 마농 [2018.08.23 16:48:16]

일반론으로 이야기 하면
 - 함수가 가장 느립니다.
 - 스칼라서브쿼리가 그 다음.
 - 조인이 가장 빠르죠.
 - 관리측면 제외하고 속도만 본다면? 조인 없이 decode 쓰는게 가장 빠르겠지요.
예외는 물론 있습니다.
 - 값의 종류가 얼마 되지 않는 코드값의 경우엔
 - 조인보다 스칼라서브쿼리가 더 빠를 수도 있습니다.
 - 메인쿼리 데이터가 대량일 때 서브쿼리 캐싱 효과를 볼 수 있기 때문입니다.
함수는 진짜 방법이 없습니다.
 - 함수의 비효율을 최대한 제거하여 최적화하고
 - 함수를 deterministic 으로 선언하고
 - dual 을 이용한 서브쿼리로 바꾸어 서브쿼리 캐싱까지 적용시켜도
 - 근본적으로 데이터 량이 많아지면 성능 개선에 한계가 있습니다.
함수 사용이 개발 가이드로 되어 있다면?
 - 함수 사용을 기본으로 하되 성능이 느린 경우에 한해서 다른 기법을 사용하는 것을 허용해야 할 것입니다.
 - 소량의 자료 쿼리엔 함수 사용
 - 대량의 자료 쿼리엔 조인 사용
 - 대량의 자료 쿼리중 캐싱효과가 기대되는 경우에 서브쿼리 사용


by 열심열심 [2018.08.23 17:01:06]

오늘도 많이 배워 갑니다. 감사합니다. 


by 달라쏭 [2018.08.23 17:24:21]

좋은 정보 감사합니다 ^^

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