JET_SPACEHINTS構造体
適用対象: Windows |Windows Server
JET_SPACEHINTS構造体
JET_SPACEHINTS構造体には、b ツリーが追加分割またはホットポイント分割によって拡張されたときの領域割り当てパターンに関する情報が含まれます。 追加分割は、レコードが b ツリーの末尾に追加され、ホットポイント分割が同じ仮想挿入ポイントに複数のレコードが追加されるときに発生します (たとえば、アルファベット順に並べ替えられた b ツリーの中央に 'Marie'、'Mark'、'Martin'、'Mary' を追加するなど)。
Windows 7:JET_SPACEHINTS構造は、Windows 7 で導入されています。
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
この構造体に使用するオプションを含むビットのグループ。次の 0 個以上が含まれます。
値 |
説明 |
---|---|
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が指定されている場合、テーブル内の使用領域がこのしきい値を下回ると、テーブルの最適化がトリガーされます。 テーブルの最適化は、このメンバーを 0 に設定することで無効にすることができます。 このメンバーを 100 に設定すると、ページが解放されるとすぐにテーブルの最適化が実行されます。
ulGrowth
最も近いネイティブ JET 割り当てサイズに丸められた、最後の増加または初期サイズからの増加率。
cbMinExtent が小さすぎます
これにより、小さすぎる場合は ulGrowth がオーバーライドされます。
cbMaxExtent
増加の最大値 (バイト単位)。 この大文字は ulGrowth です。
b ツリーが (ランダムなレコード挿入ではなく) 追加分割またはホットポイント分割によって拡張される場合、テーブルが拡大する領域の量は次のように計算されます。
作成時には、常に b ツリー cbInitial を指定します。
特定の領域の最初の割り当て中に、cbInitial * ulGrowth / 100 (DB のページ サイズに丸められます)、または cbMinExtent (大きい場合) を割り当てます。
次の割り当て中に、cbLastAlloc * ulGrowth / 100 (DB のページ サイズに丸められます)、または cbMinExtent (大きい場合)。
ある割り当て (最初の割り当てになる可能性があります) では、計算されるサイズが cbMaxExtent を超え、その後の拡張サイズになります。
要件
要件 | 値 |
---|---|
Client |
Windows Vista、Windows XP、または Windows 2000 Professional が必要です。 |
[サーバー] |
Windows Server 2008、Windows Server 2003、または Windows 2000 Server が必要です。 |
Header |
Esent.h で宣言されています。 |