Struttura JET_OPENTEMPORARYTABLE
Si applica a: Windows | Windows Server
Struttura JET_OPENTEMPORARYTABLE
La struttura JET_OPENTEMPORARYTABLE contiene una raccolta facilmente estendibile di parametri per la funzione JET_OPENTEMPORARYTABLE . Questa struttura è l'equivalente della tabella temporanea della struttura JET_TABLECREATE .
Windows Vista: La struttura JET_OPENTEMPORARYTABLE è introdotta in Windows Vista.
typedef struct tagJET_OPENTEMPORARYTABLE {
unsigned long cbStruct;
const JET_COLUMNDEF* prgcolumndef;
unsigned long ccolumn;
JET_UNICODEINDEX* pidxunicode;
JET_GRBIT grbit;
JET_COLUMNID* prgcolumnid;
unsigned long cbKeyMost;
unsigned long cbVarSegMac;
JET_TABLEID tableid;
} JET_OPENTEMPORARYTABLE;
Membri
cbStruct
Dimensioni di questa struttura in byte (per l'espansione futura). Deve essere impostato su sizeof( JET_TABLECREATE ) in byte.
prgcolumndef
Definizioni di colonna per le colonne create nella tabella temporanea.
Esistono limitazioni importanti per le opzioni di definizione della colonna usate con una tabella temporanea. Per altre informazioni, vedere la sezione Osservazioni.
Oltre alle consuete opzioni di definizione della colonna, è anche possibile specificare zero o più delle opzioni seguenti che sono rilevanti solo nel contesto di una tabella temporanea.
Valore |
Significato |
---|---|
JET_bitColumnTTDescending |
L'ordinamento della colonna chiave per la tabella temporanea deve essere decrescente anziché crescente. Se questa opzione viene specificata senza JET_bitColumnTTKey, questa opzione viene ignorata. |
JET_bitColumnTTKey |
La colonna sarà una colonna chiave per la tabella temporanea. L'ordine delle definizioni di colonna con questa opzione specificata nella matrice di input determinerà la precedenza di ogni colonna chiave per la tabella temporanea. La prima definizione di colonna nella matrice con questo set di opzioni sarà la colonna chiave più significativa e così via. Se sono richieste più colonne chiave di quelle supportate dal motore di database, questa opzione viene ignorata per le colonne chiave non supportate. |
ccolumn
Vedere prgcolumndef.
pidxunicode
ID delle impostazioni locali e flag di normalizzazione da usare per confrontare i dati delle colonne chiave Unicode nella tabella temporanea.
Quando questo parametro non è presente e quando il parametro lcid non è presente, verrà usato l'LCID predefinito per confrontare le colonne chiave Unicode nella tabella temporanea. LCID predefinito è le impostazioni locali inglese degli Stati Uniti.
Quando questo parametro non è presente, verranno usati i flag di normalizzazione predefiniti per confrontare i dati delle colonne chiave Unicode nella tabella temporanea. I flag di normalizzazione predefiniti sono: NORM_IGNORECASE, NORM_IGNOREKANATYPE e NORM_IGNOREWIDTH.
grbit
Un gruppo di bit che specifica zero o più delle opzioni seguenti.
Valore |
Significato |
---|---|
JET_bitTTIndexed |
Questa opzione richiede che la tabella temporanea sia sufficientemente flessibile per consentire l'uso di JetSeek per cercare i record in base alla chiave di indice. Se questa funzionalità non è necessaria, è consigliabile non richiederla. Se questa funzionalità non è richiesta, il gestore tabelle temporanee potrebbe essere in grado di scegliere una strategia per la gestione della tabella temporanea che comporterà un miglioramento delle prestazioni. |
JET_bitTTUnique |
Richieste che i record con chiavi di indice duplicate vengano rimossi dal set finale di record nella tabella temporanea. Prima di Windows Server 2003, il motore di database presuppone sempre che questa opzione sia attiva a causa del fatto che tutti gli indici cluster devono anche essere una chiave primaria e pertanto devono essere univoci. A partire da Windows Server 2003, è ora possibile creare una tabella temporanea che non rimuove duplicati quando viene specificata anche l'opzione JET_bitTTForwardOnly. Non è possibile sapere quale duplicato avrà esito positivo e quali duplicati verranno eliminati, in generale. Tuttavia, quando viene richiesta l'opzione JET_bitTTErrorOnDuplicateInsertion, il primo record con una chiave di indice specificata da inserire nella tabella temporanea avrà sempre esito positivo. |
JET_bitTTUpdatable |
Richiede che la tabella temporanea sia sufficientemente flessibile per consentire la modifica dei record inseriti in precedenza. Se questa funzionalità non è necessaria, è consigliabile non richiederla. Se questa funzionalità non è richiesta, il gestore tabelle temporanee potrebbe essere in grado di scegliere una strategia per la gestione della tabella temporanea che comporterà un miglioramento delle prestazioni. |
JET_bitTTScrollable |
Richiede che la tabella temporanea sia sufficientemente flessibile per consentire l'analisi dei record in ordine arbitrario e direzione tramite JetMove. Se questa funzionalità non è necessaria, è consigliabile non richiederla. Se questa funzionalità non è richiesta, il gestore tabelle temporanee potrebbe essere in grado di scegliere una strategia per la gestione della tabella temporanea che comporterà un miglioramento delle prestazioni. |
JET_bitTTSortNullsHigh |
Richiede che i valori della colonna chiave NULL siano ordinati più vicino alla fine dell'indice rispetto ai valori di colonna chiave non NULL. |
JET_bitTTForceMaterialization |
Forza il gestore tabelle temporanee ad abbandonare la ricerca della strategia migliore per usare la gestione della tabella temporanea che comporterà prestazioni migliorate. |
JET_bitTTErrorOnDuplicateInsertion |
Qualsiasi tentativo di inserimento di un record con la stessa chiave di indice di un record inserito in precedenza avrà esito negativo immediatamente con JET_errKeyDuplicate. Se questa opzione non viene richiesta, un duplicato viene rilevato immediatamente e ha esito negativo oppure viene rimosso automaticamente in un secondo momento, a seconda della strategia scelta dal motore di database per implementare la tabella temporanea, in base alla funzionalità richiesta. Se questa funzionalità non è necessaria, è consigliabile non richiederla. Se questa funzionalità non è richiesta, il gestore tabelle temporanee potrebbe essere in grado di scegliere una strategia per la gestione della tabella temporanea che comporterà un miglioramento delle prestazioni. |
JET_bitTTForwardOnly |
La tabella temporanea viene creata solo se gestione tabelle temporanee può usare l'implementazione ottimizzata per i risultati intermedi delle query. Se una caratteristica della tabella temporanea impedisce l'uso di questa ottimizzazione, l'operazione avrà esito negativo con JET_errCannotMaterializeForwardOnlySort. Un effetto collaterale di questa opzione consiste nel consentire alla tabella temporanea di contenere record con chiavi di indice duplicate. Per altre informazioni, vedere JET_bitTTUnique. Windows Server 2003: Questa opzione è disponibile solo in Windows Server 2003 e versioni successive. |
prgcolumnid
Buffer di output che riceve la matrice di ID di colonna generati durante la creazione della tabella temporanea.
Gli ID di colonna in questa matrice corrispondono esattamente alla matrice di input delle definizioni di colonna. Di conseguenza, le dimensioni di questo buffer devono corrispondere alle dimensioni della matrice di input.
cbKeyMost
Dimensione massima per una chiave che rappresenta una determinata riga.
La dimensione massima della chiave può essere impostata per controllare la modalità di troncamento delle chiavi. Il troncamento della chiave è importante perché può influire sui casi in cui le righe vengono considerate distinte.
Se questo parametro è impostato su 0 o JET_cbKeyMostMin (255), le dimensioni massime della chiave e la relativa semantica rimarranno identiche alle dimensioni massime della chiave supportate da Windows Server 2003 e dalle versioni precedenti. Questo parametro può anche essere impostato su un valore maggiore come funzione delle dimensioni della pagina del database per l'istanza (JET_paramDatabasePageSize). Per altre informazioni, vedere JET_paramKeyMost.
cbVarSegMac
Quantità massima di dati che verranno usati da qualsiasi colonna di lunghezza variabile per costruire una chiave per una determinata riga.
Questo parametro può essere usato per controllare la quantità di spazio della chiave utilizzata da una determinata colonna chiave. Questo limite è espresso in byte. Se questo parametro è zero o è uguale al parametro cbKeyMost , non viene applicato alcun limite.
tableid
Handle di tabella per la tabella temporanea creata in seguito a una chiamata riuscita a JetOpenTemporaryTable.
Requisiti
Requisito | Valore |
---|---|
Client |
Richiede Windows Vista. |
Server |
Richiede Windows Server 2008. |
Intestazione |
Dichiarato in Esent.h. |
Vedere anche
JET_TABLECREATE
JET_COLUMNDEF
JET_UNICODEINDEX
JET_GRBIT
JET_COLUMNID
JET_TABLEID
JetOpenTemporaryTable
Parametri di sistema del motore di archiviazione estendibile