数据库缓存参数

适用于: Windows |Windows Server

数据库缓存参数

本主题包含用于数据库缓存的参数。

JET_paramBatchIOBufferMax
22

此参数控制数据库页缓存的辅助部分的大小,该部分用于模拟散点收集 I/O,否则不可用。 大小以数据库页为单位。

Windows XP 及更高版本: 此参数已过时,不会影响数据库引擎的操作。

Label

默认值:

256

键入:

整数

有效范围:

0, 2 – 2147483647

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramCacheSize
41

此参数可用于控制运行时数据库页缓存的大小。 通常,缓存会根据数据库和计算机活动级别自动调整其大小。 如果应用程序将此参数设置为零,则缓存将以这种方式调整自己的大小。 但是,如果应用程序将此参数设置为非零值,则缓存将自行调整为该目标大小, (数据库页) 。 然后,缓存将保持其大小处于该阈值,直到给定新大小或释放它以选择自己的大小。

注意 缓存大小仍受 JET_paramCacheSizeMinJET_paramCacheSizeMax限制的约束。

读取此参数时,将返回数据库页中缓存的实际大小。 应用程序可以将此大小用作输入,以驱动其手动调整缓存大小。

Label

默认值:

特殊

键入:

整数

有效范围:

Windows 2000: 1 – 1048575

Windows XP: 1 – 4294967295

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramCacheSizeMin
60

此参数配置数据库页缓存的最小大小。 大小以数据库页为单位。

默认情况下,数据库缓存会在 JET_paramCacheSizeMinJET_paramCacheSizeMax设置的限制之间自动调整其大小。

Windows 2000: 在 Windows 2000 上,此参数应设置为一个值,该值大致等于同时位于 ESE API 中的线程数的四倍。 这是为了避免由于数据库页缓存缓冲区数量不足而无法执行 B+ 树拆分等复杂操作而导致的死锁。

Windows XP 及更高版本: 缓存管理器将自动设置自己的最小缓存大小以避免死锁。

Label

默认值:

Windows 2000: 64

Windows XP: 1

键入:

整数

有效范围:

Windows 2000: 1 – 1048575

Windows XP: 1 – 4294967295

范围:

全球

JetCreateInstance 之后设置:

Windows 2000:

Windowsxp: 是的

JetInit 之后设置:

Windows 2000:

Windowsxp: 是的

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramCacheSizeMax
23

此参数配置数据库页缓存的最大大小。 大小以数据库页为单位。

默认情况下,数据库缓存会在 JET_paramCacheSizeMinJET_paramCacheSizeMax设置的限制之间自动调整其大小。

注意 如果此参数保留为其默认值,则在调用 JetInit 时,缓存的最大大小将设置为物理内存的大小。

Windows Vista: 从 Windows Vista 开始,此参数的默认值已更改,以阐明此行为。

Label

默认值:

Windows 2000、Windows XP 和 Windows Server 2003: 512

Windows Vista: 2000000000

键入:

整数

有效范围:

Windows 2000: 1 – 1048575

Windows XP: 1 – 4294967295

范围:

全球

JetCreateInstance 之后设置:

Windows 2000:

Windowsxp: 是的

JetInit 之后设置:

Windows XP 和 Windows 2000:

Windows Vista 和 Windows Server 2003: 是的

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramCheckpointDepthMax
24

此参数控制从数据库页缓存中刷新数据库页的方式,以最大程度地减少从崩溃中恢复所需的时间。 参数是一个阈值,以字节为单位,表示崩溃后需要重播多少个事务日志文件。

如果使用 JET_paramCircularLog启用了循环日志记录 则此参数还将控制将在磁盘上保留的事务日志文件的大致数量。

不要将此参数设置为过低,这一点很重要。 当此参数的值接近零时,将数据库页刷新到磁盘时,缓存将变得越来越主动。 这不仅会导致对数据库文件的写入次数增加,还间接导致对这些文件的读取次数增加。 在某些情况下,这可能会导致非常严重的性能问题。 遗憾的是,只能对目标应用程序使用试验来设置此参数的最小最佳值。

Label

默认值:

20971520

键入:

整数

有效范围:

Windows 2000、Windows XP 和 Windows Server 2003: 0 – 2147483647

Windows Vista: 所有值

范围:

Windows 2000、Windows XP 和 Windows Server 2003: 此参数为全局参数。

Windows Vista: 此参数是每个实例。

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramCheckpointIOMax
135

此参数控制数据库引擎将用于刷新修改的数据库页以推进检查点的最大并发写入次数。 此参数的值可用于平衡检查点的推进速度与此过程对包含数据库的磁盘的其他 I/O 操作响应时间的负面影响。

Label

默认值:

96

键入:

整数

有效范围:

8 – 1024

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

Windows Vista 及更高版本

JET_paramEnableViewCache
127

如果此参数为 True,则数据库引擎将直接使用 Windows 文件缓存中的数据库数据,而不是将缓存的数据复制到其自己的专用内存中。 修改后的任何数据库数据仍将缓存在专用内存中。

此模式的目的是进一步减少数据库引擎用于缓存数据库数据的专用内存量。

仅当通过将 JET_paramEnableFileCache 设置为 True 来启用 Windows 文件缓存的使用时,才能使用视图缓存。

Label

默认值:

错误

键入:

布尔

有效范围:

False、True

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

Windows Vista 及更高版本

JET_paramLRUKCorrInterval
25

此参数设置两个数据库页访问被视为相关的时间间隔(以微秒为单位)。 此相关间隔控制缓存页面替换算法 (LRU-K) 对连续页访问的敏感度。 这反过来又会影响它选择保留缓存的页面。

Label

默认值:

128000

键入:

整数

有效范围:

Windows 2000、Windows XP 和 Windows Server 2003: 0 – 2147483647

Windows Vista: 所有值

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramLRUKHistoryMax
26

此参数设置将保留数据库页访问时间的非缓存数据库页的最大数目。 这些历史记录允许缓存的页面替换算法 (LRU-K) 更准确地检测错误地从数据库页面缓存中逐出的热门页面。

Windows XP 和 Windows Server 2003: 此参数在 Windows XP 和 Windows Server 2003 上被忽略,不会影响数据库引擎的操作。

Label

默认值:

Windows 2000: 1024

Windows Vista: 100000

键入:

整数

有效范围:

Windows 2000: 0 – 4194303

Windows Vista: 所有值

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramLRUKPolicy
27

此参数配置用于确定页面有用性的数据库页访问数。 此参数实质上是 LRU-K 中的 K,LRU-K 是数据库页缓存的页面替换算法。

Label

默认值:

2

键入:

整数

有效范围:

1-2

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramLRUKTimeout
28

此参数指示数据库页缓存中的页面因考虑页面的有用性而失去页面访问权限的时间段(以秒为单位)。

Label

默认值:

100

键入:

整数

有效范围:

Windows 2000、Windows XP 和 Windows Server 2003: 1 – 2147483647

Windows Vista: 1 – 4294967295

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramLRUKTrxCorrInterval
29

此参数已过时,不会影响数据库引擎的操作。

JET_paramStartFlushThreshold
31

此参数控制数据库页缓存何时开始从缓存中逐出页面,以便为未缓存的页腾出空间。 当缓存中的页缓冲区数低于此阈值时,将启动后台进程来补充该可用缓冲区池。 此阈值始终相对于 JET_paramCacheSizeMax设置的最大缓存大小。 此阈值还必须始终小于 JET_paramStopFlushThreshold设置的停止阈值。

启动阈值的距离高度将确定数据库页缓存在应用程序需要可用缓冲区之前生成可用缓冲区所必须的响应时间。 较高的启动阈值将使后台进程有更多的时间做出反应。 但是,高启动阈值意味着更高的停止阈值,这将减少 (Windows 2000) 或 Windows XP 和更高版本) (所有页面的数据库页缓存的有效大小。

Label

默认值:

Windows 2000、Windows XP 和 Windows Server 2003: 5 (1%)

Windows Vista: 20000000 (1%)

键入:

整数

有效范围:

Windows 2000: 1 – 1048575

Windows XP: 1 – 4294967295

Windows Vista: 所有值

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

JET_paramStopFlushThreshold
32

此参数控制数据库页缓存何时从缓存中逐出页面,为未缓存的页面腾出空间。 当缓存中的页缓冲区数超过此阈值时,启动以补充可用缓冲区池的后台进程将停止。 此阈值始终相对于 JET_paramCacheSizeMax设置的最大缓存大小。 此阈值还必须始终大于 JET_paramStartFlushThreshold设置的开始阈值。

启动阈值和停止阈值之间的距离会影响后台进程刷新数据库页的效率。 较大的间隔会使写入相邻页面的可能性更大。 但是,较高的停止阈值会减少修改后 (Windows 2000) 或 Windows XP 及更高版本) (所有页面的数据库页缓存的有效大小。

Label

默认值:

Windows 2000、Windows XP 和 Windows Server 2003: 10 (2%)

Windows Vista: 40000000 (2%)

键入:

整数

有效范围:

Windows 2000: 1 – 1048575

Windows XP: 1 – 4294967295

Windows Vista: 所有值

范围:

全球

JetCreateInstance 之后设置:

JetInit 之后设置:

影响物理布局:

影响可靠性:

影响性能:

影响资源:

可用性:

全部

要求

要求

客户端

需要 Windows Vista、Windows XP 或 Windows 2000 专业版。

服务器

需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。

标头

在 Esent.h 中声明。

另请参阅

JetCreateInstance
JetInit