2011-11-01 2 views

답변

5

정의, from wikipedia :

저장 프로시 저는 그 액세스 관계형 데이터베이스 시스템 응용 프로그램에서 사용할 수있는 서브 루틴입니다.

는 은 일반적으로 저장 프로 시저의

장점, from wikipedia

:

오버 헤드 : 저장 프로 시저 문은 데이터베이스에 직접 저장됩니다 때문에, 컴파일 오버 헤드 의 전부 또는 일부를 제거 할 수있다 일반적으로 소프트웨어 응용 프로그램이 인라인 (동적) SQL 쿼리를 데이터베이스로 보내는 상황에서 필요합니다. (...) 네트워크 트래픽의

회피 : 큰 장점 저장 프로 시저 와 함께 그들이 데이터베이스 엔진에서 직접 실행할 수 있다는 것입니다. 프로덕션 시스템에서 일반적으로이 절차는 을 전용 데이터베이스 서버에서 실행하며 이는 액세스되는 데이터를 에 직접 액세스 할 수 있음을 의미합니다. 여기서 이점은 네트워크 통신 비용을 완전히 피할 수 있다는 것입니다. 이것은 일련의 복잡한 SQL 문에 특히 중요한 이됩니다.

비즈니스 로직을 캡슐화 : 저장 프로 시저 프로그래머 가 데이터 관리를 단순화하고 클라이언트 프로그램의 다른 논리를 인코딩 할 필요성을 줄일 수있는 데이터베이스의 API로 비즈니스 로직을 포함 할 수 있습니다. (...) 액세스 권리의

대표 : 많은 시스템에서 저장 프로 시저는 그 프로 시저를 실행하는 사용자가 직접이없는 데이터베이스에 부여 된 액세스 권한이 될 수 있습니다.

SQL 주입 공격으로부터의 보호 : 저장 프로 시저는 주입 공격으로부터 보호하기 위해 이 될 수 있습니다. 스토어드 프로 시저 매개 변수 은 공격자가 SQL 명령을 삽입하더라도 데이터로 처리됩니다. (...)

PostgresSQL 저장 프로 시저에서는 사용자 정의 함수이라고합니다. 정의 예 :

CREATE FUNCTION somefunc(quantity integer) RETURNS integer AS $$ 
DECLARE 
    myvariable integer := 2; 
BEGIN 
    RETURN quantity * myvariable; 
END; 
$$ LANGUAGE plpgsql; 

호출 예를 (당신은 PostgreSQL을에 저장 기능을 정의하는 다른 언어를 사용할 수 있습니다) :

SELECT somefunc(100); 

더 많은 정보는 : http://www.postgresql.org/docs/9.1/static/server-programming.html

+1

In PostgreSQL 저장 프로 시저에서 "사용자 정의 함수"라고합니다. – filiprem

2

PostgreSQL을 실행 Jav를 포함한 12 개 이상의 프로그래밍 언어에서 저장 프로 시저 Perl, Python, Ruby, Tcl, C/C++ 및 그 자체의 PL/pgSQL과 같은 Oracle PL/SQL과 유사합니다.

저장 프로 시저의 사용은 사용자의 요구에 따라 내 의견 저장 프로 시저 만 어떤 경우에는 유용하지 적 ...

내가 저장 사용했던, 프로그램의 논리에 따라 달라집니다 프로 시저가 다중 데이터베이스 서버 응용 프로그램에있는 경우이 경우 저장 프로 시저를 사용하면 다른 데이터베이스 서버 유형에서 실행되도록 수정해야하는 쿼리가있는 경우에 매우 유용 할 수 있습니다. 프로 시저를 호출하고 프로그램에서 호출하여 클라이언트 코드에서 변경하지 않고 원하는 결과 세트를 실행하고 검색하는지 확인하십시오.

PostgreSQL에서 저장 프로 시저를 만드는 방법은 설명서 this page을 참조하십시오.

0

주요 이점은 네트워크 트래픽 오버 헤드를 줄이는 것입니다. 저장 프로 시저는 비즈니스 논리 또는 논리 타이어와 거의 동일합니다 (정확하게는 아님). 그것의 주요 장점은 동적 엔터 프라이즈 응용 프로그램을 만드는 것입니다. 당신은 좋은 제품의 100s가 동적 데이터베이스 구조의 부족 때문에 실패 찾을 수 있습니다. 저장 프로 시저, 함수, 트리거, 시퀀스, 인덱스 및 데이터베이스의 관계형 특성은 훌륭한 응용 프로그램을 만드는 실제 키입니다. 내 회사는 항상 저장 프로 시저의 도움으로 클라이언트 측 논리 계층을 줄이려고합니다. 중요한 로직의 대부분은 저장 프로 시저에 저장되어 프로그래머와 테스터를 행복하게 만들고 타임 라인을 충족시킵니다.

관련 문제