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 |
變更內部配置原則,以從 b 型樹狀結構的直接父系取得空間階層式。 |
JET_bitCreateHintAppendSequential |
啟用附加分割行為,根據 cbMinExtent、ulGrowth、cbMaxExtent () 所設定之資料表的成長動態成長。 |
JET_bitCreateHintHotpointSequential |
讓作用點分割行為根據 cbMinExtent、ulGrowth、cbMaxExtent) 所設定的 (資料表成長動態成長。 |
JET_bitRetrieveHintTableScanForward |
如果設定,用戶端會指出向前循序掃描是此資料表的主要使用模式。 |
JET_bitRetrieveHintTableScanBackward |
如果設定,用戶端表示回溯循序掃描是此資料表的主要使用模式。 |
JET_bitDeleteHintTableSequential |
如果設定,應用程式預期會依循序順序清除此資料表,從最低索引鍵到最高索引鍵。 |
ulMaintDensity
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 Professional。 |
Server |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
標頭 |
在 Esent.h 中宣告。 |