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 |
Modifica i criteri di allocazione interni per ottenere lo spazio in modo erede dal padre immediato di un albero b. |
JET_bitCreateHintAppendSequential |
Consente di aumentare il comportamento di divisione di accodamento in base alle dinamiche di crescita della tabella (impostata da cbMinExtent, ulGrowth, cbMaxExtent). |
JET_bitCreateHintHotpointSequential |
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 |
Se impostato, il client indica che l'analisi sequenziale in avanti è il modello di utilizzo predominante di questa tabella. |
JET_bitRetrieveHintTableScanBackward |
Se impostato, il client indica che l'analisi sequenziale indietro è il modello di utilizzo predominante di questa tabella. |
JET_bitDeleteHintTableSequential |
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:
In fase di creazione, diamo sempre il cbInitial ad albero b.
Durante la prima allocazione di una determinata area verrà allocata: cbInitial * ulGrowth / 100 (arrotondata alle dimensioni della pagina del database) o cbMinExtent se maggiore.
Durante l'allocazione successiva, cbLastAlloc * ulGrowth/ 100 (arrotondata alle dimensioni della pagina del database) o cbMinExtent se maggiore.
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. |