Database Parameters

Applies to: Windows | Windows Server

Database Parameters

This topic contains parameters that are used for the database.

JET_paramCheckFormatWhenOpenFail
44

This parameter, when set, will cause JetInit to return a special error when a database or transaction log from a previous release of the database engine is opened. These errors are:

Error

Description

JET_errDatabase200Format

The database and/or transaction log files were created with the database engine in Windows NT 3.51.

JET_errDatabase400Format

The database and/or transaction log files were created with the database engine in a test release prior to Windows NT Server 4.0.

JET_errDatabase500Format

The database and/or transaction log files were created with the database engine in Windows NT Server 4.0.

Windows Vista:  For Windows Vista and later, this parameter is obsolete and does not affect the operation of the database engine.

Label Value

Default Value:

True

Type:

Boolean

Valid Range:

False, True

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

No

Affects Performance:

No

Affects Resources:

No

Availability:

All

JET_paramDatabasePageSize
64

This parameter configures the page size for the database. The page size is the smallest unit of space allocation possible for a database file. The database page size is also very important because it sets the upper limit on the size of an individual record in the database.

Note Only one database page size is supported per process at this time. This means that if you are in a single process that contains different applications that use the database engine then they must all agree on a database page size.

Label Value

Default Value:

4096

Type:

Integer

Valid Range:

2048, 4096, 8192

Scope:

Global

Set After JetCreateInstance:

No

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

Yes

Availability:

All

JET_paramDbExtensionSize
18

This parameter controls the amount of space that is added to a database file each time it needs to grow to accommodate more data. The size is in database pages.

Label Value

Default Value:

256

Type:

Integer

Valid Range:

1 – 2147483647

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Windows Vista:  For Windows Vista and later: Yes

Affects Physical Layout:

No

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

Yes

Availability:

All

JET_paramEnableIndexChecking
45

When this parameter is true, every database is checked at JetAttachDatabase time for indexes over Unicode key columns that were built using an older version of the NLS library in the operating system. This must be done because the database engine persists the sort keys generated by LCMapStringW and the value of these sort keys change from release to release.

If a primary index is detected to be in this state then JetAttachDatabase will always fail with JET_errPrimaryIndexCorrupted.

If any secondary indexes are detected to be in this state then there are two possible outcomes. If JET_bitDbDeleteCorruptIndexes was passed to JetAttachDatabase then these indexes will be deleted and JET_wrnCorruptIndexDeleted will be returned from JetAttachDatabase. These indexes will need to be recreated by your application. If JET_bitDbDeleteCorruptIndexes was not passed to JetAttachDatabase then the call will fail with JET_errSecondaryIndexCorrupted.

Note It is strongly recommended that this parameter be set to True by your application.

Note It is very strongly recommended that applications avoid the use of Unicode key columns in their primary key (clustered) indexes.

Label Value

Default Value:

False

Type:

Boolean

Valid Range:

False, True

Scope:

Global

Windows Vista:  For Windows Vista and later: Instance

Set After JetCreateInstance:

No

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

Yes

Affects Performance:

No

Affects Resources:

No

Availability:

All

JET_paramEnableIndexCleanup
54

When this parameter is set to true, then the database engine may automatically clean up indexes over Unicode key columns at JetInit time as necessary to avoid database format changes caused by changes to the NLS library in Windows. Such changes are made routinely to the NLS library to add support for new languages, to add missing characters to a language, to add a collation order to a language, or to fix bugs in the collation order of a language. These changes affect the sort keys produced by LCMapStringW which are persisted by the database engine as components of index keys.

It is important to realize that it is possible for the changes to the index to be so great that an incremental cleanup is not possible. In this case, the index will be handled as prescribed by JET_paramEnableIndexChecking.

Note It is strongly recommended that this parameter and JET_paramEnableIndexChecking be set to True by your application.

Label Value

Default Value:

True

Type:

Boolean

Valid Range:

False, True

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Windows Vista:  For Windows Vista and later: Yes

Affects Physical Layout:

No

Affects Reliability:

No

Affects Performance:

No

Affects Resources:

No

Availability:

Windows Server 2003 and later releases

JET_paramOneDatabasePerSession
102

When this parameter is true then only one database is allowed to be opened using JetOpenDatabase by a given session at one time. The temporary database is excluded from this restriction.

Windows XP and Windows Server 2003:  This parameter is write only on Windows XP and Windows Server 2003.

Windows Vista:  This parameter behaves normally as of Windows Vista.

Note  This parameter is write only.

Label Value

Default Value:

False

Type:

Boolean

Valid Range:

False, True

Scope:

Global

Set After JetCreateInstance:

No

Windows Vista:  For Windows Vista and later: Yes

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

No

Affects Performance:

No

Affects Resources:

No

Availability:

Windows XP and later releases

JET_paramEnableOnlineDefrag
35

This parameter controls the behavior of online defragmentation when initiated using JetDefragment. Please see JetDefragment for more information.

Windows 2000:  On Windows 2000, this parameter was a simple Boolean that would gate online defragmentation when initiated by JetDefragment. When set to TRUE, online defragmentation will be performed on the records of each table in the database.

Windows XP:  On Windows XP and later releases, this parameter can be set to one or more of the following options:

Option

Description

JET_OnlineDefragDisable

Do not perform online defragmentation. This is the binary equivalent to the Windows 2000 setting of False for this parameter.

JET_OnlineDefragAllOBSOLETE

Perform full online defragmentation. This is the binary equivalent to the Windows 2000 setting of True for this parameter.

JET_OnlineDefragDatabases

Perform online defragmentation of the records of each table in the database.

JET_OnlineDefragSpaceTrees

Perform online defragmentation of the space trees of each table in the database.

JET_OnlineDefragStreamingFiles

This parameter is used to support the Microsoft Exchange infrastructure and is not intended to be used in your application.

JET_OnlineDefragAll

Perform full online defragmentation. This is the conceptual equivalent to the Windows 2000 setting of True for this parameter.

Label Value

Default Value:

Windows 2000:  True

Windows XP:  For Windows XP and later: JET_OnlineDefragAll

Type:

Windows 2000:  Boolean

Windows XP and later:  JET_GRBIT (integer)

Valid Range:

Windows 2000:  False, True

Windows XP and later:  0 – JET_OnlineDefragAll

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

Yes

Affects Physical Layout:

No

Affects Reliability:

Yes

Affects Performance:

Yes

Affects Resources:

No

Availability:

All

JET_paramPageFragment
20

This parameter is the threshold that the database engine uses to control free space fragmentation. The size is in database pages.

Label Value

Default Value:

8

Type:

Integer

Valid Range:

0 – 2147483647

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

Yes

Availability:

All

JET_paramRecordUpgradeDirtyLevel
78

This parameter controls how aggressively the database page cache manager will write a database page that has undergone an in place format conversion. These format conversions occur on the fly as pages are loaded from a database that was created with the Windows 2000 database engine but used by a Windows XP or later release of the database engine.

Label Value

Default Value:

1

Type:

Integer

Valid Range:

0-3

Scope:

Global

Set After JetCreateInstance:

Yes

Set after JetInit:

Yes

Affects Physical Layout:

Yes

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

No

Availability:

Windows XP and later releases

JET_paramWaypointLatency
153

The latency (in logs) behind the tip / highest committed log to defer database page flushes. Enabling this latency can allow database recovery in the case of catastrophic loss of the most recent logfile. See JET_bitReplayIgnoreLostLogs.

Label Value

Default Value:

0

Type:

Integer

Valid Range:

0-1023

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

Yes

Affects Performance:

Yes

Affects Resources:

No

Availability:

Windows 7

JET_paramDefragmentSequentialBTrees
160

Turn on/off automatic sequential B-tree defragmentation.

Label Value

Default Value:

1

Type:

Boolean

Valid Range:

0-1

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

No

Availability:

Windows 7

JET_paramDefragmentSequentialBTreesDensityCheckFrequency
161

Determines how frequently B-tree density is checked.

Label Value

Default Value:

10

Type:

Integer

Valid Range:

0-Max Integer

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

No

Availability:

Windows 7

JET_paramIOThrottlingTimeQuanta
162

Max time, in milliseconds, that the I/O throttling mechanism gives a task to run for it to be considered 'completed'.

Label Value

Default Value:

125

Type:

Integer

Valid Range:

0-10000

Scope:

Global

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

No

Availability:

Windows 7

Requirements

Requirement Value

Client

Requires Windows Vista, Windows XP, or Windows 2000 Professional.

Server

Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server.

Header

Declared in Esent.h.

See Also

JetAttachDatabase
JetCreateInstance
JetDefragment
JetInit