큰 문제를 극복하기 위한 원리로 분할정복의 원리가 있다. 즉, 큰 문제를 작은 문제로 분할하여 문제의 복잡도를 줄여서 해결하고, 이를 전체 차원에서 재조직화하는 작업을 말한다. 프로그래밍에서도 예외는 없다. 특히 큰 프로젝트에서 응용 프로그램을 작은 논리적 단위로 분할하여 프로그래밍 하는 것이 더 쉽다..
이러한 구성요소를 procedures와 function이라 하고 자주 사용되는 계산이나 텍스트나 데이터베이스 조작과 같이 반복되거나 공유되는 작업이 집중되었을때 유용하다.

배울땐 function은 리턴값이 있고..procedures는 리턴값이 없다고 배웠는데..막상 그것도 아니더군요..-_-;
이 두개의 서브루틴은 같은 구조입니다.

데이터베이스에서 function과 procedures의 가장 큰 차이점은 클라이언트에서 처리하느냐 아님 서버로 보내서 처리하느냐이고...function의 처리는 클라이언트에서 하지만..procedures는 서버에서 처리를 합니다.
속도면에서는 서버에서 처리하는 procedures가 빠른 성능을 보여줍니다.

procedure : 서버에서 실행이 되기 때문에 속도가 빠름.
                 리턴값이 있어두 되구 없어두 됨(in, out으로 처리).
                 리턴값을 여러개 넘길 수 있다..(out을 여러개 사용)
                 select 문에서 호출 불가능하다.
                 프로시저는 실행, 처리를 할때 주로 사용된다..

function : 리턴값이 필수이고 하나만 된다..파리미터 넘기는 값은 IN만 존재한다.
               select에서 호출이 가능하다 
               클라이언트에서 처리
               함수는 주로 간단한 계산, 수치 이런 결과를 나타낼때 주로 사용 

뭐 이정도가 되겠네요..^^

'컴퓨터 > DB' 카테고리의 다른 글

25가지 효율적인 SQL 작성법  (0) 2009.01.15
데이터베이스(DB) 옵티마이져의 기본원리  (0) 2009.01.15
데이터베이스의 DDL, DML, DCL  (0) 2009.01.15
페이징 방법 중 하나..  (0) 2009.01.15
오라클 함수 모음  (0) 2009.01.15
      
Posted by k_ben