适用于: Windows |Windows Server
JET_SPACEHINTS 结构
当 b 树通过追加或热点拆分增长时, JET_SPACEHINTS 结构包含有关空间分配模式的信息。 将记录添加到 b 树的末尾时,会发生追加拆分;将多个记录添加到同一个虚拟插入点时会发生热点拆分 (例如,将“Marie”、“Mark”、“Martin”、“Mary”添加到按字母顺序) 排序的 b 树中间。
Windows 7: windows 7 中引入了 JET_SPACEHINTS 结构。
    typedef struct tagJET_SPACEHINTS {
      unsigned long cbStruct;
      unsigned long ulInitialDensity;
      unsigned long cbInitial;
      JET_GRBIT grbit;
      unsigned long ulMaintDensity;
      unsigned long ulGrowth;
      unsigned long cbMinExtent;
      unsigned long cbMaxExtent;
    } JET_SPACEHINTS;
成员
cbStruct
此结构的大小(以字节为单位)。 将此成员设置为 sizeof ( JET_SPACEHINTS ) 。
ulInitialDensity
追加) 布局 (密度。
cbInitial
正在创建的对象) 初始大小 (字节数。 这必须是数据库页大小的倍数。
grbit
一组位,其中包含要用于此结构的选项,其中包括以下零个或多个内容。
| 值 | 含义 | 
|---|---|
| JET_bitSpaceHintsUtilizeParentSpace | 更改内部分配策略,以从 b 树的直接父级获取空间。 | 
| JET_bitCreateHintAppendSequential | 允许追加拆分行为根据 cbMinExtent、ulGrowth、cbMaxExtent) 设置的表 (增长动态进行增长。 | 
| JET_bitCreateHintHotpointSequential | 允许热点拆分行为根据 cbMinExtent、ulGrowth、cbMaxExtent) 设置的表 (增长动态增长。 | 
| JET_bitRetrieveHintTableScanForward | 如果设置,客户端会指示向前顺序扫描是此表的主要使用模式。 | 
| JET_bitRetrieveHintTableScanBackward | 如果设置,客户端指示向后顺序扫描是此表的主要使用模式。 | 
| JET_bitDeleteHintTableSequential | 如果设置,应用程序希望按顺序(从最低键到最高键)清理此表。 | 
ulMaintDensity
density to mulMaintDensity
要维持的密度。 如果空格提示指定JET_bitRetrieveHintTableScanForward或JET_bitRetrieveHintTableScanBackward,则当表中已用空间低于此阈值时,将触发表碎片整理。 可以通过将此成员设置为零来禁用表碎片整理。 将此成员设置为 100 将导致表碎片整理在页面释放后立即运行。
ulGrowth
从上次增长或初始大小开始的百分比增长,舍入到最接近的本机 JET 分配大小。
cbMinExtent 太小
如果过小,这将替代 ulGrowth。
cbMaxExtent
增长的最大值(以字节为单位)。 此上限为 ulGrowth。
当 b 树通过追加或热点拆分(而不是随机记录插入) ) (增长时,表将增长的空间量计算如下:
- 在创建时,我们始终为 b 树 cbInitial 提供 。 
- 在给定区域的第一次分配期间,我们将分配:cbInitial * ulGrowth / 100 (舍入为 DB 的页大小) ,或 cbMinExtent(如果更大)。 
- 在下一次分配期间,cbLastAlloc * ulGrowth / 100 (舍入到 DB) 的页大小;如果更大,则为 cbMinExtent。 
- 在某些分配 ((可能是第一个分配) ),计算的大小将超过 cbMaxExtent,之后将是增长大小。 
要求
| 要求 | 值 | 
|---|---|
| 客户端 | 需要 Windows Vista、Windows XP 或 Windows 2000 专业版。 | 
| 服务器 | 需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 | 
| 标头 | 在 Esent.h 中声明。 |