Struttura JET_SPACEHINTS

Si applica a: Windows | Windows Server

Struttura JET_SPACEHINTS

La struttura JET_SPACEHINTS contiene informazioni sui modelli di allocazione dello spazio quando un albero b cresce tramite suddivisioni a punti di accesso o punto di accesso frequente. Le suddivisioni accodate si verificano quando i record vengono aggiunti alla fine di una suddivisione ad albero b e punti di scelta frequente si verificano quando più record vengono aggiunti allo stesso punto di inserimento virtuale( ad esempio, aggiungendo 'Marie', 'Mark', 'Martin', 'Mary' al centro di un albero b ordinato alfabeticamente).

Windows 7: La struttura JET_SPACEHINTS viene introdotta in 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;

Membri

cbStruct

Dimensione, in byte, della struttura. Impostare questo membro su sizeof( JET_SPACEHINTS ).

ulInitialDensity

Layout di densità in corrispondenza (accodamento).

cbInitial

Dimensione iniziale (in byte) dell'oggetto creato. Questo deve essere un multiplo delle dimensioni della pagina del database.

grbit

Un gruppo di bit che contengono le opzioni da usare per questa struttura, che includono zero o più dei seguenti elementi.

Valore

Significato

JET_bitSpaceHintsUtilizeParentSpace
0x00000001

Modifica i criteri di allocazione interni per ottenere lo spazio in modo erede dal padre immediato di un albero b.

JET_bitCreateHintAppendSequential
0x00000002

Consente di aumentare il comportamento di divisione di accodamento in base alle dinamiche di crescita della tabella (impostata da cbMinExtent, ulGrowth, cbMaxExtent).

JET_bitCreateHintHotpointSequential
0x00000004

Consente di aumentare il comportamento di suddivisione dei punti di accesso in base alle dinamiche di crescita della tabella (impostata da cbMinExtent, ulGrowth, cbMaxExtent).

JET_bitRetrieveHintTableScanForward
0x00000010

Se impostato, il client indica che l'analisi sequenziale in avanti è il modello di utilizzo predominante di questa tabella.

JET_bitRetrieveHintTableScanBackward
0x00000020

Se impostato, il client indica che l'analisi sequenziale indietro è il modello di utilizzo predominante di questa tabella.

JET_bitDeleteHintTableSequential
0x00000100

Se impostato, l'applicazione prevede che questa tabella venga pulita in ordine sequenziale, dalla chiave più bassa alla chiave più alta.

ulMaintDensity

densità a mulMaintDensity

Densità da mantenere in corrispondenza. Se gli hint di spazio specificano JET_bitRetrieveHintTableScanForward o JET_bitRetrieveHintTableScanBackward, la deframmentazione della tabella verrà attivata quando lo spazio usato nella tabella scende al di sotto di questa soglia. La deframmentazione della tabella può essere disabilitata impostando questo membro su zero. L'impostazione di questo membro su 100 causerà l'esecuzione della deframmentazione della tabella non appena viene liberata una pagina.

ulGrowth

Crescita percentuale dall'ultima crescita o dimensione iniziale, arrotondata alle dimensioni di allocazione JET native più vicine.

cbMinExtent troppo piccolo

Questa operazione esegue l'override dell'ulGrowth se troppo piccola.

cbMaxExtent

Valore massimo per la crescita in byte. Questo limite è ulGrowth.

Quando un albero b cresce attraverso le suddivisioni ad accodamento o punto di scelta frequente (anziché inserimenti di record casuali), la quantità di spazio che la tabella crescerà viene calcolata come segue:

  1. In fase di creazione, diamo sempre il cbInitial ad albero b.

  2. Durante la prima allocazione di una determinata area verrà allocata: cbInitial * ulGrowth / 100 (arrotondata alle dimensioni della pagina del database) o cbMinExtent se maggiore.

  3. Durante l'allocazione successiva, cbLastAlloc * ulGrowth/ 100 (arrotondata alle dimensioni della pagina del database) o cbMinExtent se maggiore.

  4. In un'allocazione (che potrebbe essere la prima allocazione), la dimensione calcolata supererà cbMaxExtent e che sarà la dimensione della crescita successivamente.

Requisiti

Requisito Valore

Client

Richiede Windows Vista, Windows XP o Windows 2000 Professional.

Server

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

Intestazione

Dichiarato in Esent.h.

Vedere anche

JET_TABLECREATE2
JET_TABLECREATE3