Condividi tramite


Accesso alle tabelle Memory-Optimized mediante Transact-SQL interpretato

Con poche eccezioni, è possibile accedere a tabelle ottimizzate per la memoria usando qualsiasi Transact-SQL operazione di query o DML (SELECT, INSERT, UPDATE o DELETE), batch ad hoc e moduli SQL come stored procedure, funzioni con valori di tabella, trigger e viste.

Il Transact-SQL interpretato fa riferimento a Transact-SQL batch o stored procedure diverse da una stored procedure compilata in modo nativo. Interpretato Transact-SQL l'accesso alle tabelle ottimizzate per la memoria viene definito accesso di interoperabilità.

È anche possibile accedere alle tabelle ottimizzate per la memoria usando una stored procedure compilata in modo nativo. Le stored procedure compilate in modo nativo sono consigliate per le operazioni OLTP critiche per le prestazioni.

L'accesso interpretato Transact-SQL è consigliato per questi scenari:

  • Query ad hoc e attività amministrative.

  • Query di creazione di report, che in genere usano costrutti non disponibili nelle stored procedure compilate in modo nativo , ad esempio funzioni finestra.

  • Per eseguire la migrazione di parti critiche per le prestazioni dell'applicazione a tabelle ottimizzate per la memoria, con modifiche minime (o nessuna) del codice dell'applicazione. È possibile visualizzare potenziali miglioramenti delle prestazioni dalla migrazione delle tabelle. Se quindi si esegue la migrazione di stored procedure a stored procedure compilate in modo nativo, è possibile che si verifichi un ulteriore miglioramento delle prestazioni.

  • Quando un'istruzione Transact-SQL non è disponibile per le stored procedure compilate in modo nativo.

I seguenti costrutti di Transact-SQL non sono supportati nelle procedure memorizzate interpretate Transact-SQL che accedono ai dati in una tabella ottimizzata in memoria.

Zona Non supportato
Accesso alle tabelle TRONCA TABELLA

MERGE (tabella ottimizzata per la memoria come destinazione)

Cursori dinamici e keyset (che si riducono automaticamente a statici).

Accedere dai moduli CLR usando la connessione di contesto.

Riferimento a una tabella ottimizzata per la memoria da una vista indexata.
Interoperabilità tra database Query inter database

Transazioni tra database

Server collegati

Suggerimenti per la tabella

Per altre informazioni sugli hint di tabella, vedere... Suggerimenti di Tabella (Transact-SQL). L'isolamento SNAPSHOT è stato introdotto per supportare In-Memory OLTP.

Gli hint di tabella seguenti non sono supportati quando si accede a una tabella ottimizzata per la memoria tramite Transact-SQL interpretato.

HOLDLOCK IGNORA VINCOLI IGNORE_TRIGGERS NOWAIT
PAGLOCK READCOMMITTED READCOMMITTEDLOCK READPAST
READUNCOMMITTED SCALMO SPATIAL_WINDOW_MAX_CELLS = integer TABLOCK
TABLOCKXX UPDLOCK XLOCK

Quando si accede a una tabella ottimizzata per la memoria da una transazione esplicita o implicita usando Transact-SQL interpretata, è necessario includere un hint di tabella a livello di isolamento, ad esempio SNAPSHOT, REPEATABLEREAD o SERIALIZABLE oppure è possibile usare MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT. Per altre informazioni, vedere Linee guida per i livelli di isolamento delle transazioni con Memory-Optimized tabelle e opzioni ALTER DATABASE SET (Transact-SQL).

Annotazioni

Un suggerimento sul livello di isolamento per la tabella non è necessario per le tabelle ottimizzate per la memoria a cui accedono le query in esecuzione in modalità commit automatico.

Vedere anche

Supporto di Transact-SQL per OLTP in memoria
Migrazione a OLTP in memoria