次の方法で共有


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
0x00000001

内部割り当てポリシーを変更して、b ツリーの直接の親から領域の階層を取得します。

JET_bitCreateHintAppendSequential
0x00000002

テーブルの拡張ダイナミクスに従って追加分割動作を拡張できるようにします (cbMinExtent、ulGrowth、cbMaxExtent によって設定されます)。

JET_bitCreateHintHotpointSequential
0x00000004

テーブルの拡張ダイナミクスに従ってホットポイント分割動作を拡張できるようにします (cbMinExtent、ulGrowth、cbMaxExtent によって設定されます)。

JET_bitRetrieveHintTableScanForward
0x00000010

設定されている場合、クライアントは、前方シーケンシャル スキャンがこのテーブルの主な使用パターンであることを示します。

JET_bitRetrieveHintTableScanBackward
0x00000020

設定されている場合、クライアントは、このテーブルの主要な使用パターンが下位シーケンシャル スキャンであることを示します。

JET_bitDeleteHintTableSequential
0x00000100

設定した場合、アプリケーションは、このテーブルが最も低いキーから最高のキーまで、順番にクリーンアップされることを想定しています。

ulMaintDensity

density to mulMaintDensity

維持する密度。 スペース ヒントでJET_bitRetrieveHintTableScanForwardまたはJET_bitRetrieveHintTableScanBackwardが指定されている場合、テーブル内の使用領域がこのしきい値を下回ると、テーブルの最適化がトリガーされます。 テーブルの最適化は、このメンバーを 0 に設定することで無効にすることができます。 このメンバーを 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 を超え、その後の拡張サイズになります。

要件

要件

Client

Windows Vista、Windows XP、または Windows 2000 Professional が必要です。

[サーバー]

Windows Server 2008、Windows Server 2003、または Windows 2000 Server が必要です。

Header

Esent.h で宣言されています。

参照

JET_TABLECREATE2
JET_TABLECREATE3