범퍼카 토토

범퍼카 토토 - 아직 실행하지 않고 진술 준비

시놉시스

spiplanptr 범퍼카 토토 (const char *명령, intNARGS, oid *Argtypes)

설명

범퍼카 토토지정된 명령에 대한 준비된 명령문을 작성하고 리턴하지만 명령을 실행하지는 않습니다. 준비된 진술은 나중에 반복적으로 실행될 수 있습니다.SPI_EXECUTE_PLAN.

동일하거나 유사한 명령을 반복적으로 실행하는 경우, 일반적으로 구문 분석 분석을 한 번만 수행하는 것이 유리하며 더욱 명령에 대한 실행 계획을 재사용하는 것이 유리할 수 있습니다..범퍼카 토토명령 문자열을 구문 분석 결과를 캡슐화하는 준비 문으로 변환합니다. 준비된 진술은 또한 각 실행에 대한 사용자 지정 계획을 생성하는 것이 도움이되지 않는 경우 실행 계획을 캐싱하기위한 장소를 제공합니다.

준비된 명령은 매개 변수를 작성하여 일반화 할 수 있습니다 ($ 1,$ 2등) 정상 명령에서 상수가 될 대신. 매개 변수의 실제 값은에 지정됩니다.SPI_EXECUTE_PLAN호출됩니다. 이를 통해 준비된 명령은 매개 변수가없는 것보다 더 넓은 범위의 상황에서 사용할 수 있습니다.

진술은범퍼카 토토이후 C 함수의 현재 호출에만 사용할 수 있습니다.SPI_FINISH그러한 진술에 할당 된 메모리가 할당되었습니다. 그러나 그 진술은 함수를 사용하여 더 오랫동안 저장 될 수 있습니다SPI_KEEPPLAN또는SPI_SAVEPLAN.

인수

const char *명령

명령 문자열

intNARGS

입력 매개 변수 수 ($ 1,$ 2등)

OID *Argtypes

배열을 포함하는 배열에 대한 포인터OID매개 변수의 데이터 유형

반환 값

범퍼카 토토널 비 널 포인터를 반환Spiplan, 준비된 진술을 나타내는 불투명 한 구조물입니다. 오류로NULL반환되고SPI_RESULT|SPI_EXECUTESPI_ERROR_ARGUMENTif13121_13130isNULL또는 ifNARGS0보다 작거나 ifNARGS0보다 크다ArgtypesisNULL.

노트

매개 변수가 정의되지 않으면 처음 사용하면 일반 계획이 작성됩니다.SPI_EXECUTE_PLAN및 모든 후속 실행에도 사용됩니다. 매개 변수가있는 경우의 처음 몇 가지 사용SPI_EXECUTE_PLAN제공된 매개 변수 값에 특정한 사용자 지정 계획을 생성합니다. 동일한 준비된 진술을 충분히 사용한 후SPI_EXECUTE_PLAN일반적인 계획을 세우고 사용자 정의 계획보다 훨씬 비싸지 않으면 매번 재 플래닝 대신 일반 계획을 사용하기 시작합니다. 이 기본 동작이 부적합한 경우 전달하여 변경할 수 있습니다.cursor_opt_generic_plan또는cursor_opt_custom_plan플래그 to범퍼카 토토_CURSOR, 각각 일반 또는 맞춤형 계획의 사용을 강제로 사용합니다.

준비된 진술의 주요 요점은 반복 된 구문 분석 및 진술 계획을 피하는 것입니다.PostgreSQL명령문에 사용 된 데이터베이스 개체가 준비된 명령문의 이전 사용 이후 정의 (DDL) 변경을 거칠 때마다 명령문을 다시 분석하고 다시 계획 할 것입니다. 또한이면search_path하나의 사용에서 다음 사용으로 변경되면 NEW를 사용하여 명령문이 다시 표시됩니다search_path. (이 후자의 행동은 새로운 것입니다postgresql9.3.) 참조준비준비된 진술의 행동에 대한 자세한 내용은

이 함수는 연결된 C 함수에서만 호출해야합니다.

spiplanptr| 불투명 한 구조물 유형에 대한 포인터로 선언SPI.H. 내용에 직접 액세스하려고 시도하는 것은 현명하지 않으므로, 코드는 향후 코드가 향후 수정 될 가능성이 훨씬 높아PostgreSQL.

이름spiplanptr데이터 구조에 더 이상 실행 계획이 포함되어 있지 않기 때문에 다소 역사적입니다.

정정 제출

문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면