다음을 통해 공유


JetSetDatabaseSize 함수

적용 대상: Windows | Windows Server

JetSetDatabaseSize 함수

JetSetDatabaseSize 함수는 미개봉 데이터베이스 파일의 크기를 설정합니다.

    JET_ERR JET_API JetSetDatabaseSize(
      __in          JET_SESID sesid,
      __in          JET_PCSTR szDatabaseName,
      __in          unsigned long cpg,
      __out         unsigned long* pcpgReal
    );

매개 변수

sesid

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

szDatabaseName

크기를 변경할 데이터베이스 파일의 이름을 식별합니다.

포장 소비재

원하는 데이터베이스 크기를 페이지 단위로 지정합니다.

pcpgReal

API 호출 후 데이터베이스 크기(페이지)를 수신하는 숫자에 대한 포인터입니다. API 호출이 실패하면 pcpgReal 의 콘텐츠가 정의되지 않습니다.

반환 값

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

반환 코드

설명

JET_errSuccess

작업이 성공적으로 완료되었습니다.

JET_errDatabaseInconsistent
JET_errDatabaseDirtyShutdown

JET_errDatabaseInconsistent 및 JET_errDatabaseDirtyShutdown 같은 숫자 값입니다. 크기를 조정할 데이터베이스는 일관된 상태라고 하는 클린 종료 중이어야 합니다. 일관되지 않은 데이터베이스는 손상되지 않았지만 로그 파일을 재생해야 합니다.

JET_errDatabaseInvalidPath

szDatabaseName 은 NULL이 아닌 빈 문자열이 아니어야 합니다.

JET_errDiskFull

볼륨에 사용 가능한 공간이 부족하여 증가 작업을 수행할 수 없습니다. JetSetDatabaseSize 는 다음을 포함하지만 이에 국한되지 않는 많은 파일 관련 오류를 반환할 수도 있습니다.

  • JET_errDiskIO

  • JET_errFileNotFound

  • JET_errInvalidPath

  • JET_errFileAccessDenied

  • JET_errOutOfFileHandles

JET_errInvalidParameter

이 오류가 반환될 수 있는 이유 중 하나는 cpg 가 최소 데이터베이스 크기를 충족하는 경우입니다. 현재 최소 데이터베이스 크기는 256페이지입니다.

JET_errOutOfMemory

시스템이 메모리 리소스가 부족합니다.

설명

대량의 데이터를 삽입하기 전에 JetSetDatabaseSize 가 호출되면 데이터베이스 파일은 하나의 작업에서 확장됩니다. 이렇게 하면 데이터베이스 파일이 파일 시스템 수준에서 조각화될 가능성이 줄어들고 데이터베이스 파일을 늘려야 하는 횟수도 줄어듭니다. 데이터베이스 파일을 한 번 증가시키는 것은 여러 번 증가하는 것보다 더 빠를 수 있습니다.

파일 증가만 현재 지원됩니다. 파일을 축소하려면 esentutl.exe 유틸리티 프로그램의 조각 모음 기능을 사용합니다.

cpg가 데이터베이스의 현재 크기보다 작으면 작업이 무시됩니다. cpg가 최소 데이터베이스 크기(현재 256페이지)보다 작으면 JET_errInvalidParameter 반환됩니다.

열린 데이터베이스의 크기를 설정하려면 JetGrowDatabase를 참조하세요.

파일 크기가 pcpgReal에 반환된 페이지 수와 일치하지 않을 수 있습니다. pcpgReal에 계산되지 않을 수 있는 두 개의 추가 예약 페이지가 있습니다.

요구 사항

요구 사항

클라이언트

Windows Vista, Windows XP 또는 Windows 2000 Professional이 필요합니다.

서버

Windows Server 2008, Windows Server 2003 또는 Windows 2000 Server가 필요합니다.

머리글

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

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.

유니코드

JetSetDatabaseSizeW(유니코드) 및 JetSetDatabaseSizeA(ANSI)로 구현됩니다.

참고 항목

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_OBJECTINFO
JET_OBJECTLIST
JetGrowDatabase