이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 윈 토토버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

토토 캔

이름

PREPARE -- 실행을 위한 명령문 토토 캔

시놉시스

토토 캔이름 [ ( 데이터_유형[, ...] ) ] AS성명

설명

토토 캔토토 캔된 명령문을 생성합니다. 에이 토토 캔된 문은 다음 작업에 사용할 수 있는 서버측 개체입니다. 성능을 최적화합니다. 때토토 캔문이 실행되고 지정된 문이 구문 분석되고 분석됩니다. 그리고 다시 작성되었습니다. 때실행명령은 이후에 발행되면 토토 캔된 명세서가 계획되고 실행. 이러한 업무 분업은 반복적인 구문 분석을 방지합니다. 실행 계획은 특정 작업에 따라 달라지도록 허용합니다. 매개변수 값이 제공됩니다.

토토 캔된 명령문은 매개변수를 취할 수 있습니다: 실행될 때 명령문으로 대체됩니다. 생성할 때 토토 캔된 문은 다음을 사용하여 위치별로 매개변수를 참조합니다.$1, $2등 A 매개변수 데이터 유형의 해당 목록은 선택적으로 가능합니다. 지정. 매개변수의 데이터 유형이 지정되지 않았거나 지정된 경우 다음과 같이 선언됨알 수 없음, 유형이 추론됩니다. 매개변수가 처음 사용된 상황에서(만약 가능). 명령문을 실행할 때 실제 값을 지정하십시오. 이 매개변수에 대해서는실행문장. 참조토토 결과 : 문서 : 9.3 : execute더 보기 그것에 관한 정보입니다.

토토 캔된 명령문은 현재 기간 동안만 지속됩니다. 데이터베이스 세션. 세션이 종료되면 토토 캔된 명령문은 다음과 같습니다. 잊어버렸기 때문에 다시 사용하기 전에 다시 만들어야 합니다. 이 또한 토토 캔된 단일 문을 사용할 수 없음을 의미합니다. 다수의 동시 데이터베이스 클라이언트; 그러나 각 클라이언트는 사용할 자신만의 토토 캔된 문을 만듭니다. 토토 캔된 진술은 다음과 같습니다. 다음을 사용하여 수동으로 정리하십시오.삭제명령.

토토 캔된 진술은 다음과 같은 경우에 가장 큰 성능 이점을 갖습니다. 단일 세션이 다수의 유사한 작업을 실행하는 데 사용됩니다. 진술. 성능 차이는 특히 명령문을 계획하거나 다시 작성하기가 복잡한 경우 중요합니다. 예를 들어 쿼리에 여러 테이블의 조인이 포함되거나 필요한 경우 여러 규칙을 적용합니다. 진술이 상대적인 경우 계획하고 다시 작성하는 것은 간단하지만 실행하는 데 상대적으로 비용이 많이 듭니다. 토토 캔된 문의 성능 이점은 적습니다. 눈에 띄는.

매개변수

이름

이 특정 토토 캔된 명령문에 부여된 임의의 이름입니다. 단일 세션 내에서 고유해야 하며 이후에 사용됩니다. 이전에 토토 캔된 명령문을 실행하거나 할당을 취소합니다.

데이터_유형

토토 캔된 명령문에 대한 매개변수의 데이터 유형입니다. 만약 특정 매개변수의 데이터 유형이 지정되지 않았거나 지정되었습니다. 와 같이알 수 없음, 이는 다음에서 추론됩니다. 매개변수가 처음 사용되는 컨텍스트입니다. 을 참조하려면 토토 캔된 문 자체의 매개변수를 사용하세요.$1, $2

성명

모두선택, 삽입, 업데이트, 삭제또는성명.

참고

토토 캔된 명령문이 충분한 횟수만큼 실행되면 서버는 결국에는 일반 계획을 저장하고 재사용하기로 결정합니다. 매번 다시 계획을 세운다. 토토 캔된 경우 즉시 발생합니다. 명령문에는 매개변수가 없습니다. 그렇지 않은 경우에만 발생합니다. 일반 플랜은 일반 플랜보다 훨씬 비싸지 않은 것 같습니다. 특정 매개변수 값에 따라 달라집니다. 일반적으로 일반 계획 쿼리 성능이 다음과 같이 예상되는 경우에만 선택됩니다. 제공된 특정 매개변수 값에 상당히 둔감합니다.

쿼리 계획을 조사하려면PostgreSQL토토 캔된 명령문에 사용 중입니다. 사용PostgreSQL : 문서 : 9.3 : 와이즈 토토. 일반 플랜이 있는 경우 사용하면 매개변수 기호가 포함됩니다$n, 사용자 정의 동안 계획에는 현재 실제 매개변수 값이 대체됩니다. 그것.

쿼리 계획 및 통계에 대한 자세한 내용은 수집자:PostgreSQL그러기 위해서는 목적은 참조PostgreSQL : 문서 : 9.3 : 토토 커뮤니티문서.

비록 토토 캔된 진술의 주요 요점은 피하는 것입니다. 반복적인 구문 분석 및 명령문 계획PostgreSQL재분석을 강제하고 데이터베이스를 사용할 때마다 명령문을 다시 계획합니다. 명령문에 사용된 객체는 정의(DDL)를 거쳤습니다. 토토 캔된 명령문을 이전에 사용한 이후 변경되었습니다. 또한 만약에 값검색_경로한 용도에서 다음 용도로 변경되면 명령문이 다시 구문 분석됩니다. 새로운 것을 사용하여검색_경로. (이 후자는 행동은 현재 새로운 것입니다.PostgreSQL9.3.) 이 규칙은 의미론적으로 토토 캔된 명령문을 사용합니다. 동일한 쿼리 텍스트를 다시 제출하는 것과 거의 동일합니다. 이상이지만 객체 정의가 없으면 성능상의 이점이 있습니다. 특히 최선의 계획이 사용 전반에 걸쳐 동일하게 유지되는 경우 더욱 그렇습니다. 의미론적 동등성이 완벽하지 않은 경우의 예 명령문이 정규화되지 않은 이름으로 테이블을 참조하는 경우 그런 다음 동일한 이름의 새 테이블이 스키마에 생성됩니다. 이전에 나타남검색_경로, 아니요 명령문에 사용된 객체가 없으므로 자동 재분석이 발생합니다. 변경되었습니다. 그러나 다른 변경 사항으로 인해 다시 구문 분석이 필요한 경우 새 테이블은 이후 사용 시 참조됩니다.

다음을 통해 세션에서 사용 가능한 모든 토토 캔된 명령문을 볼 수 있습니다. 쿼리하는 중입니다.토토 사이트 추천 : 문서 : 9.3 :시스템 뷰.

에 대한 토토 캔된 명령문 생성삽입문을 작성한 다음 실행하세요.

Fooplan 토토 캔(정수, 텍스트, 부울, 숫자) AS
    foo 값에 삽입($1, $2, $3, $4);
EXECUTE fooplan(1, 'Hunter Valley', 't', 200.00);

다음에 대해 토토 캔된 명령문 작성선택문을 작성한 다음 실행하세요.

usrrptplan (int) AS 토토 캔
    SELECT * FROM 사용자 u, 로그 l WHERE u.usrid=$1 AND u.usrid=l.usrid
    그리고 l.날짜 = $2;
실행 usrrptplan(1, 현재_날짜);

두 번째 매개변수의 데이터 유형은 다음과 같습니다. 지정되었으므로 다음이 포함된 컨텍스트에서 추론됩니다.$2사용됩니다.

호환성

SQL 표준에는 다음이 포함됩니다.토토 캔문이지만 Embedded SQL에서만 사용할 수 있습니다. 이 버전의토토 캔문은 또한 다소 다른 구문.