인자 속도 관련 질문이 있어 글 남깁니다. 0 1 1,483

by 그노그노 [PL/SQL] [2015.12.10 10:52:47]


안녕하세요 초보 오라클 프로그래머 입니다.

별건 아니고 pl 함수에서 varchar2 인자를 c언어 내부 함수로 넘길 때 속도에 관해 질문이 있어 글 남깁니다.

 

현재 pl은 대충 아래와 같습니다.

CREATE OR REPLACE FUNCTION 함수명(
   PARAM                     IN   VARCHAR2

)

  RETURN VALUE

AS

 EXTERNAL
   NAME "test"

PARAMETERS(PARAM STRING,
      PARAM INDICATOR,
      PARAM LENGTH INT,

      RETURN

);

/

여기서 보시면 VARCHAR2인자를 C쪽으로 넘길 때 3개의 인자로 나누어 보내거든요.

근데 알아보니 OCIString 타입 하나로 넘겨 C단에서 처리할 수도 있더라구요.

 

그래서 궁금한점이 생겼는데 각자의 장단점(?)은 뭐가 있을까요??

그리고 어떤식으로 처리하는게 속도면에서 나을까요??

알고계신 고수분 계시면 답변 좀 부탁 드립니다.

 

by 아발란체 [2015.12.11 11:23:50]

없어용. 똑같습니다.

유사한 예가, 요즘 개발자들이 자주 쓰는 JSON 자료 구조로 설명 드리면,

1. a = 1, b = 2, c = 3 

2. results = { "a" : 1, "b" : 2, "c" : 3 }

위 장단점? 없겠죠. 똑같습니다. 취향이죠.

하지만 전체 시스템 패턴이 있다면 그것을 따르는 것이 바람직 할 것 같습니다.

물론 JSON 자료 구조는, 분명한 특징이 있으나 저런 몇 개 값을 보낼 때는 아무런 의미 없습니다.

 

같은 얘기로, 결과를 XML로 보내냐, 배열로 보내냐, 구분자를 통한 문자열로 보내냐, JSON으로 보내냐는 분명한 장단점이 있으며 사용 목적에 따라 분명히 선택 할 수 있는 기준이 있는데,

차원이 없는 단순한 값 몇 개 보내는 것은 선택 할 수 있는 기준이 없기 때문에 그냥 아무거나 써도 되는 것과 같다고 봅니다.

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