PL/pg사설 토토로드 가능합니다 의 절차적 언어포스트그레사설 토토데이터베이스 시스템. 디자인 목표 의PL/pg사설 토토을 만들려고 했는데요 로드 가능한 절차적 언어
함수를 생성하고 트리거하는 데 사용할 수 있습니다. 절차,
제어 구조를 다음에 추가합니다사설 토토언어,
복잡한 계산을 수행할 수 있습니다.
모든 사용자 정의 유형, 함수 및 연산자,
서버에서 신뢰하도록 정의할 수 있습니다.
사용하기 쉽습니다.
다음으로 생성된 함수PL/pg사설 토토내장된 어느 곳에서나 사용할 수 있습니다. 기능을 사용할 수 있었습니다. 예를 들어 다음을 생성할 수 있습니다. 복잡한 조건부 계산 함수를 사용하고 나중에 이를 사용하여 연산자를 정의하거나 색인 표현식에 사용하세요.
사설 토토언어입니다Postgre사설 토토및 기타 대부분 관계형 데이터베이스는 쿼리 언어로 사용됩니다. 휴대성이 좋고 배우기 쉽다. 하지만 매사설 토토문은 데이터베이스에 의해 개별적으로 실행되어야 합니다. 서버.
즉, 클라이언트 응용프로그램이 각 쿼리를 보내야 함을 의미합니다 데이터베이스 서버로 이동하여 처리될 때까지 기다린 후 수신 결과를 처리하고 계산을 수행한 다음 추가로 전송합니다. 서버에 쿼리합니다. 이 모든 것은 프로세스 간을 발생시킵니다. 통신을 수행할 경우 네트워크 오버헤드도 발생합니다. 클라이언트가 데이터베이스 서버와 다른 시스템에 있습니다.
함께PL/pg사설 토토그룹화할 수 있습니다 계산 블록과 일련의 쿼리내부데이터베이스 서버, 따라서 절차적 언어의 힘과 사용의 용이성 사설 토토을 사용하지만 클라이언트/서버 비용을 상당히 절약할 수 있습니다. 통신 오버헤드.
클라이언트와 서버 간의 추가 왕복은 다음과 같습니다. 제거됨
클라이언트가 필요로 하지 않는 중간 결과 서버와 서버 간에 마샬링되거나 전송될 필요가 없습니다. 클라이언트
여러 차례의 쿼리 구문 분석을 피할 수 있습니다.
이것은 다음과 같이 상당한 성능 향상을 가져올 수 있습니다. 저장된 응용 프로그램을 사용하지 않는 응용 프로그램과 비교 기능.
또한,PL/pg사설 토토당신은 할 수 있어요 사설 토토의 모든 데이터 유형, 연산자 및 함수를 사용합니다.
다음에 작성된 기능PL/pg사설 토토인수로 무엇이든 받아들일 수 있습니다. 서버에서 지원하는 스칼라 또는 배열 데이터 유형이며 다음을 수행할 수 있습니다. 이러한 유형 중 하나의 결과를 반환합니다. 그들은 또한 수락하거나 이름으로 지정된 복합 유형(행 유형)을 반환합니다. 그것은 a를 선언하는 것도 가능합니다.PL/pg사설 토토반환 기능기록, 결과가 행 유형임을 의미합니다. 해당 열은 호출의 사양에 따라 결정됩니다. 쿼리(에서 설명한 대로)섹션 7.2.1.4.
PL/pg사설 토토함수는 다음과 같습니다. 를 사용하여 가변 개수의 인수를 허용하도록 선언했습니다.VARIADIC마커. 이것은 정확하게 작동합니다 설명된 사설 토토 함수와 동일한 방식입니다.섹션 34.4.4.
PL/pg사설 토토함수는 또한 다형성 유형을 허용하고 반환하도록 선언됩니다.모든 요소, 임의 배열, anynonarray및안예눔. 에서 처리하는 실제 데이터 유형 다형성 함수는 설명한 대로 호출마다 다를 수 있습니다. 에서섹션 34.2.5. 예는 다음과 같습니다.섹션 38.3.1.
PL/pg사설 토토함수도 가능 a를 반환한다고 선언됩니다."설정"(또는 테이블) 단일로 반환될 수 있는 모든 데이터 유형의 인스턴스. 이러한 함수는 다음을 실행하여 출력을 생성합니다.다음으로 돌아가기원하는 각 요소에 대해 결과 세트 또는 다음을 사용하여반환 쿼리쿼리 평가 결과를 출력합니다.
마지막으로, aPL/pg사설 토토함수를 반환하도록 선언할 수 있습니다.무효유용한 반환 값이 없는 경우.
PL/pg사설 토토함수도 가능 명시적 매개변수 대신 출력 매개변수를 사용하여 선언해야 합니다. 반환 유형 지정. 이것은 아무것도 추가하지 않습니다 언어에 대한 기본적인 능력이지만 종종 특히 여러 값을 반환할 때 편리합니다.반품 테이블표기법은 다음과 같습니다. 대신에 사용됨SETOF 반환.