Compartir a través de


estructura de JET_SPACEHINTS

Se aplica a: Windows | Windows Server

estructura de JET_SPACEHINTS

La estructura de JET_SPACEHINTS contiene información sobre los patrones de asignación de espacio cuando un árbol b crece a través de divisiones de anexión o punto de acceso frecuente. Las divisiones de anexión se producen cuando se agregan registros al final de un árbol b y las divisiones de punto de acceso frecuente se producen cuando se agregan varios registros al mismo punto de inserción virtual (por ejemplo, agregando "Marie", "Mark", "Martin", "Mary" al medio de un árbol b ordenado alfabéticamente).

Windows 7: La estructura JET_SPACEHINTS se introduce en 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;

Miembros

cbStruct

Tamaño, en bytes, de esta estructura. Establezca este miembro en sizeof( JET_SPACEHINTS ).

ulInitialDensity

Densidad en el diseño (anexar).

cbInitial

Tamaño inicial (en bytes) del objeto que se va a crear. Debe ser un múltiplo del tamaño de página de la base de datos.

grbit

Un grupo de bits que contienen las opciones que se van a usar para esta estructura, que incluyen cero o más de lo siguiente.

Valor

Significado

JET_bitSpaceHintsUtilizeParentSpace
0x00000001

Cambia la directiva de asignación interna para obtener el espacio heredero de forma jerárquica del elemento primario inmediato de un árbol b.

JET_bitCreateHintAppendSequential
0x00000002

Permite que el comportamiento de división de anexión crezca según la dinámica de crecimiento de la tabla (establecida por cbMinExtent, ulGrowth, cbMaxExtent).

JET_bitCreateHintHotpointSequential
0x00000004

Permite que el comportamiento de división de puntos de acceso frecuente crezca según la dinámica de crecimiento de la tabla (establecida por cbMinExtent, ulGrowth, cbMaxExtent).

JET_bitRetrieveHintTableScanForward
0x00000010

Si se establece, el cliente indica que el examen secuencial reenviado es el patrón de uso predominante de esta tabla.

JET_bitRetrieveHintTableScanBackward
0x00000020

Si se establece, el cliente indica que el examen secuencial hacia atrás es el patrón de uso predominante de esta tabla.

JET_bitDeleteHintTableSequential
0x00000100

Si se establece, la aplicación espera que esta tabla se limpie en orden secuencial, de la clave más baja a la clave más alta.

ulMaintDensity

densidad a mulMaintDensity

Densidad en la que se mantiene. Si las sugerencias de espacio especifican JET_bitRetrieveHintTableScanForward o JET_bitRetrieveHintTableScanBackward, se desencadenará la desfragmentación de tablas cuando el espacio usado en la tabla caiga por debajo de este umbral. La desfragmentación de tablas se puede deshabilitar estableciendo este miembro en cero. Si se establece este miembro en 100, la desfragmentación de la tabla se ejecutará en cuanto se libere una página.

ulGrowth

El porcentaje de crecimiento del último crecimiento o tamaño inicial, redondeado al tamaño de asignación JET nativo más cercano.

cbMinExtent demasiado pequeño

Esto invalida ulGrowth si es demasiado pequeño.

cbMaxExtent

Valor máximo para el crecimiento en bytes. Esto tapa ulGrowth.

Cuando un árbol b crece a través de divisiones de punto de acceso frecuente o anexado (en lugar de inserciones de registros aleatorios), la cantidad de espacio que aumentará la tabla se calcula de la siguiente manera:

  1. En la creación, damos al árbol b cbInitial, siempre.

  2. Durante la primera asignación de un área determinada, asignaremos: cbInitial * ulGrowth / 100 (redondeado al tamaño de página de la base de datos) o cbMinExtent si es mayor.

  3. Durante la siguiente asignación, cbLastAlloc * ulGrowth / 100 (redondeado al tamaño de página de la base de datos) o cbMinExtent si es mayor.

  4. En alguna asignación (que podría ser la primera asignación), el tamaño calculado superará cbMaxExtent y que será el tamaño de crecimiento a partir de entonces.

Requisitos

Requisito Value

Cliente

Requiere Windows Vista, Windows XP o Windows 2000 Professional.

Servidor

Requiere Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Encabezado

Declarado en Esent.h.

Consulte también

JET_TABLECREATE2
JET_TABLECREATE3