Freigeben über


JET_SPACEHINTS-Struktur

Gilt für: Windows | Windows Server

JET_SPACEHINTS-Struktur

Die JET_SPACEHINTS-Struktur enthält Informationen zu Raumzuordnungsmustern, wenn eine b-Struktur durch Anfüge- oder Heißpunktteilungen wächst. Anfügespalten treten auf, wenn Datensätze am Ende einer b-Struktur hinzugefügt werden und Hotpoint-Splits auftreten, wenn mehrere Datensätze derselben virtuellen Einfügemarke hinzugefügt werden (z. B. das Hinzufügen von "Marie", "Mark", "Martin", "Mary" zur Mitte eines alphabetisch sortierten b-Baums).

Windows 7: Die JET_SPACEHINTS-Struktur wird in Windows 7 eingeführt.

    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;

Member

cbStruct

Die Größe (in Bytes) dieser Struktur. Legen Sie diesen Member auf sizeof( JET_SPACEHINTS ) fest.

ulInitialDensity

Die Dichte im Layout (anfügen)

cbInitial

Die Anfangsgröße (in Bytes) des zu erstellenden Objekts. Dies muss ein Vielfaches der Datenbankseitengröße sein.

grbit

Eine Gruppe von Bits, die die Optionen enthalten, die für diese Struktur verwendet werden sollen, einschließlich null oder mehr der folgenden Optionen.

Wert

Bedeutung

JET_bitSpaceHintsUtilizeParentSpace
0x00000001

Ändert die interne Zuordnungsrichtlinie so, dass Leerzeichen aus dem unmittelbaren übergeordneten Element einer B-Struktur abgerufen werden.

JET_bitCreateHintAppendSequential
0x00000002

Ermöglicht das Anfügeteilungsverhalten entsprechend der Wachstumsdynamik der Tabelle (festgelegt durch cbMinExtent, ulGrowth, cbMaxExtent).

JET_bitCreateHintHotpointSequential
0x00000004

Ermöglicht das Wachstum des Hotpoint-Split-Verhaltens entsprechend der Wachstumsdynamik der Tabelle (festgelegt durch cbMinExtent, ulGrowth, cbMaxExtent).

JET_bitRetrieveHintTableScanForward
0x00000010

Wenn festgelegt, gibt der Client an, dass der sequenzielle Forward-Scan das vorherrschende Verwendungsmuster dieser Tabelle ist.

JET_bitRetrieveHintTableScanBackward
0x00000020

Wenn festgelegt, gibt der Client an, dass die sequenzielle Rückwärtsüberprüfung das vorherrschende Verwendungsmuster dieser Tabelle ist.

JET_bitDeleteHintTableSequential
0x00000100

Wenn festgelegt, erwartet die Anwendung, dass diese Tabelle in sequenzieller Reihenfolge bereinigt wird, vom niedrigsten Schlüssel zum höchsten Schlüssel.

ulMaintDensity

density to mulMaintDensity

Dichte, die beibehalten werden soll. Wenn die Leerzeichenhinweise JET_bitRetrieveHintTableScanForward oder JET_bitRetrieveHintTableScanBackward angeben, wird die Tabellendefragmentierung ausgelöst, wenn der verwendete Speicherplatz in der Tabelle unter diesen Schwellenwert fällt. Die Tabellendefragmentierung kann deaktiviert werden, indem Sie dieses Element auf 0 festlegen. Wenn Sie diesen Member auf 100 festlegen, wird die Tabellendefragmentierung ausgeführt, sobald eine Seite freigegeben wird.

ulGrowth

Das prozentuale Wachstum von der letzten Wachstums- oder Anfangsgröße, gerundet auf die nächste native JET-Zuordnungsgröße.

cbMinExtent zu klein

Dadurch wird ulGrowth außer Kraft gesetzt, wenn es zu klein ist.

cbMaxExtent

Der maximale Wert für das Wachstum in Bytes. Dies ist ulGrowth.

Wenn eine b-Struktur durch Anfüge- oder Hotpoint-Splits wächst (im Gegensatz zu zufälligen Datensatzeinfügungen), wird der Raum, um den die Tabelle wächst, wie folgt berechnet:

  1. Bei der Erstellung geben wir dem b-Tree cbInitial, immer.

  2. Bei der ersten Zuordnung eines bestimmten Bereichs weisen wir Folgendes zu: cbInitial * ulGrowth / 100 (gerundet auf die Seitengröße der DATENBANK) oder cbMinExtent, wenn größer.

  3. Bei der nächsten Zuordnung cbLastAlloc * ulGrowth / 100 (gerundet auf die Seitengröße der Datenbank) oder cbMinExtent, wenn größer.

  4. Bei einer Zuordnung (dies könnte die erste Zuordnung sein) überschreitet die berechnete Größe cbMaxExtent, und das ist dann die Wachstumsgröße.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server.

Kopfzeile

Deklariert in Esent.h.

Weitere Informationen

JET_TABLECREATE2
JET_TABLECREATE3