Compartilhar via


Estrutura JET_SPACEHINTS

Aplica-se a: Windows | Windows Server

Estrutura JET_SPACEHINTS

A estrutura JET_SPACEHINTS contém informações sobre padrões de alocação de espaço quando uma árvore b cresce por meio de divisões de ponto de acesso ou acréscimo. As divisões de acréscimo ocorrem quando os registros são adicionados ao final de uma árvore b e as divisões de ponto quente acontecem quando vários registros são adicionados ao mesmo ponto de inserção virtual (por exemplo, adicionando 'Marie', 'Mark', 'Martin', 'Mary' ao meio de uma árvore b que é classificada em ordem alfabética).

Windows 7: A estrutura JET_SPACEHINTS é introduzida no 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;

Membros

Cbstruct

O tamanho, em bytes, dessa estrutura. Defina esse membro como sizeof( JET_SPACEHINTS ).

ulInitialDensity

A densidade no layout (acréscimo).

cbInitial

O tamanho inicial (em bytes) do objeto que está sendo criado. Deve ser um múltiplo do tamanho da página do banco de dados.

grbit

Um grupo de bits que contém as opções a serem usadas para essa estrutura, que incluem zero ou mais dos seguintes.

Valor

Significado

JET_bitSpaceHintsUtilizeParentSpace
0x00000001

Altera a política de alocação interna para obter espaço na herdeira do pai imediato de uma árvore B.

JET_bitCreateHintAppendSequential
0x00000002

Permite que o comportamento de divisão de acréscimo cresça de acordo com a dinâmica de crescimento da tabela (definida por cbMinExtent, ulGrowth, cbMaxExtent).

JET_bitCreateHintHotpointSequential
0x00000004

Permite que o comportamento de divisão de ponto quente cresça de acordo com a dinâmica de crescimento da tabela (definida por cbMinExtent, ulGrowth, cbMaxExtent).

JET_bitRetrieveHintTableScanForward
0x00000010

Se definido, o cliente indica que a verificação sequencial de encaminhamento é o padrão de uso predominante dessa tabela.

JET_bitRetrieveHintTableScanBackward
0x00000020

Se definido, o cliente indica que a verificação sequencial anterior é o padrão de uso predominante dessa tabela.

JET_bitDeleteHintTableSequential
0x00000100

Se definido, o aplicativo espera que essa tabela seja limpa em ordem sequencial, da chave mais baixa para a chave mais alta.

ulMaintDensity

densidade para mulMaintDensity

Densidade a ser mantida em. Se as dicas de espaço especificarem JET_bitRetrieveHintTableScanForward ou JET_bitRetrieveHintTableScanBackward, a desfragmentação de tabela será disparada quando o espaço usado na tabela ficar abaixo desse limite. A desfragmentação de tabela pode ser desabilitada definindo esse membro como zero. Definir esse membro como 100 fará com que a desfragmentação da tabela seja executada assim que uma página for liberada.

ulGrowth

O crescimento percentual do último crescimento ou tamanho inicial, arredondado para o tamanho de alocação nativo mais próximo do JET.

cbMinExtent muito pequeno

Isso substitui ulGrowth se muito pequeno.

cbMaxExtent

O valor máximo para o crescimento em bytes. Isso limita ulGrowth.

Quando uma árvore b cresce por meio de divisões de acréscimo ou ponto quente (em vez de inserções aleatórias de registro), a quantidade de espaço pelo qual a tabela crescerá é calculada da seguinte maneira:

  1. Na criação, damos sempre o cbInitial da árvore b.

  2. Durante a primeira alocação de uma determinada área, alocaremos: cbInitial * ulGrowth / 100 (arredondado para o tamanho da página do banco de dados) ou cbMinExtent, se maior.

  3. Durante a próxima alocação, cbLastAlloc * ulGrowth / 100 (arredondado para o tamanho da página do BD) ou cbMinExtent, se maior.

  4. Em alguma alocação (que pode ser a primeira alocação), o tamanho calculado excederá cbMaxExtent e esse será o tamanho de crescimento posteriormente.

Requisitos

Requisito Valor

Cliente

Requer Windows Vista, Windows XP ou Windows 2000 Professional.

Servidor

Requer o Windows Server 2008, o Windows Server 2003 ou o Windows 2000 Server.

Cabeçalho

Declarado em Esent.h.

Consulte Também

JET_TABLECREATE2
JET_TABLECREATE3