共用方式為


JET_SPACEHINTS 結構

適用于: Windows |Windows Server

JET_SPACEHINTS 結構

當 b 型樹狀結構透過附加或熱點分割成長時, JET_SPACEHINTS 結構包含空間配置模式的相關資訊。 新增至 b 型樹狀結構結尾的記錄時,就會發生附加分割,而熱點分割會在將多個記錄新增至相同的虛擬插入點時發生 (例如,將 'Martin'、'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
0x00000001

變更內部配置原則,以從 b 型樹狀結構的直接父系取得空間階層式。

JET_bitCreateHintAppendSequential
0x00000002

啟用附加分割行為,根據 cbMinExtent、ulGrowth、cbMaxExtent () 所設定之資料表的成長動態成長。

JET_bitCreateHintHotpointSequential
0x00000004

讓作用點分割行為根據 cbMinExtent、ulGrowth、cbMaxExtent) 所設定的 (資料表成長動態成長。

JET_bitRetrieveHintTableScanForward
0x00000010

如果設定,用戶端會指出向前循序掃描是此資料表的主要使用模式。

JET_bitRetrieveHintTableScanBackward
0x00000020

如果設定,用戶端表示回溯循序掃描是此資料表的主要使用模式。

JET_bitDeleteHintTableSequential
0x00000100

如果設定,應用程式預期會依循序順序清除此資料表,從最低索引鍵到最高索引鍵。

ulMaintDensity

mulMaintDensity 的密度

要維護的密度。 如果空間提示指定JET_bitRetrieveHintTableScanForward或JET_bitRetrieveHintTableScanBackward,當資料表中的已使用空間低於此閾值時,將會觸發資料表重組。 您可以將此成員設定為零來停用資料表重組。 將此成員設定為 100 會導致在釋放頁面後立即執行資料表重組。

ulGrowth

上次成長或初始大小的百分比,四捨五入為最接近的原生 JET 配置大小。

cbMinExtent 太小

如果太小,這會覆寫 ulGrowth。

cbMaxExtent

以位元組為單位的成長最大值。 此上限 ulGrowth。

當 b 型樹狀結構透過附加或熱點分割 (而不是隨機記錄插入) 時,資料表將成長的空間量計算如下:

  1. 在建立時,我們會一律提供 b 型樹狀結構 cbInitial。

  2. 在指定區域的第一次配置期間,我們會配置:cbInitial * ulGrowth / 100 (四捨五入至 DB 的頁面大小) ,如果較大則為 cbMinExtent。

  3. 在下一個配置期間,cbLastAlloc * ulGrowth / 100 (四捨五入為 DB) 的頁面大小,如果較大則為 cbMinExtent。

  4. 在某些配置 (可能是第一個配置) ,計算大小將會超過 cbMaxExtent,而且之後將會是成長大小。

規格需求

需求

用戶端

需要 Windows Vista、Windows XP 或 Windows 2000 Professional。

Server

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

標頭

在 Esent.h 中宣告。

另請參閱

JET_TABLECREATE2
JET_TABLECREATE3