다음을 통해 공유


JetPrereadKeys 함수

적용 대상: Windows | Windows Server

JetPrereadKeys 함수

JetPrereadKeys 함수는 버전 저장소 정리의 성능을 향상시키기 위해 키 값을 읽습니다.

Windows 7: PrereadKeys 함수는 Windows 7에 도입되었습니다.

    JET_ERR JET_API JetPrereadKeys(
      __in JET_SESID sesid,
      __in JET_TABLEID tableid,
      __in_ecount(ckeys) const void ** rgpvKeys,
      __in_ecount(ckeys) const unsigned long * rgcbKeys,
      __in long ckeys,
      __out_opt long * pckeysPreread,
      __in JET_GRBIT grbit
     );

매개 변수

sesid

API 호출에 사용할 데이터베이스 세션 컨텍스트입니다.

tableid

이 호출에 사용할 커서입니다.

rgpvKeys

키에 대한 포인터 배열입니다. 키는 JetMakeKey 를 사용하여 만들거나 JetGetBookmark를 사용하여 검색할 수 있습니다. 전달된 grbit에 따라 키를 오름차순 또는 내림차순으로 정렬해야 합니다. 키는 memcmp로 정렬할 수 있습니다.

rgcbKeys

키 길이의 배열입니다. rgpvKeys[n] 는 rgcbKeys[n] 길이의 키를 가리킵니다.

ckeys

키의 수입니다. rgpvKeys 및 rgcbKeys는 각각 적어도 ckeys 요소가 있는 배열을 가리킵니다.

pckeysPreread

미리 읽기가 실제로 발급된 키 수를 반환합니다. 이 매개 변수는 NULL일 수 있습니다.

grbit

JET_bitPrereadForward 또는 JET_bitPrereadBackward 합니다. grbit이 JET_bitPrereadForward 경우 키를 오름차순으로 정렬해야 합니다. grbit가 JET_bitPrereadBackward 경우 키를 내림차순으로 정렬해야 합니다.

반환 값

이 함수는 다음 반환 코드 중 하나를 사용하여 JET_ERR 데이터 형식을 반환합니다. 가능한 ESE 오류에 대한 자세한 내용은 확장 가능한 스토리지 엔진 오류오류 처리 매개 변수를 참조하세요.

다음과 같은 API 사용 오류와 함께 다양한 I/O 오류를 반환할 수 있습니다.

반환 코드

설명

JET_errInvalidGrbit

그빗은 JET_bitPrereadForward JET_bitPrereadBackward 아니었다.

JET_errInvalidBufferSize

잘못된 키 크기가 전달되었습니다. 키는 테이블의 최대 키 길이보다 0이거나 길 수 없습니다.

JET_errInvalidParameter

잘못된 매개 변수가 전달되었습니다. 이는 필수 매개 변수의 null 값으로 인해 발생하거나 키 배열이 제대로 정렬되지 않았음을 나타낼 수 있습니다.

JetPrereadKeys는 b-트리의 내부 페이지를 트래버스하여 rgpvKeys/rgcbKeys에 지정된 키가 포함된 리프 페이지를 결정합니다. 리프 페이지 목록이 정렬된 다음 페이지 범위에 대해 사전 읽기가 발급됩니다. 미리 읽을 수 있는 페이지 수가 제한되므로 모든 키를 미리 읽지 못할 수 있습니다. 이 경우 실제로 사전 읽기 키 수가 pckeysPreread에 반환됩니다.

요구 사항

요구 사항

클라이언트

Windows 7이 필요합니다.

서버

Windows Server 2008 R2가 필요합니다.

머리글

Esent.h에서 선언되었습니다.

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.