Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Novità di SQL Server 2014 (12.x), In-Memory OLTP può migliorare significativamente le prestazioni dell'applicazione di database OLTP. In-Memory OLTP è un motore di database ottimizzato per la memoria integrato nel motore di SQL Server, ottimizzato per OLTP.
|
Vuoi provare SQL Server 2016? Iscriversi a Microsoft Azure e quindi passare qui per avviare una macchina virtuale con SQL Server 2016 già installato. Al termine, è possibile eliminare la macchina virtuale. |
Per usare In-Memory OLTP, si definisce una tabella con accesso elevato come ottimizzata per la memoria. Le tabelle ottimizzate per la memoria sono completamente transazionali, durevoli e sono accessibili usando Transact-SQL allo stesso modo delle tabelle basate su disco. Una query può fare riferimento a tabelle ottimizzate per la memoria e tabelle basate su disco. Una transazione può aggiornare i dati nelle tabelle ottimizzate per la memoria e nelle tabelle basate su disco. Le stored procedure che fanno riferimento solo a tabelle ottimizzate per la memoria possono essere compilate in modo nativo nel codice del computer per ulteriori miglioramenti delle prestazioni. Il motore OLTP In-Memory è progettato per una concorrenza delle sessioni estremamente elevata per tipo di transazioni OLTP gestite da un livello intermedio altamente scalabile. A tale scopo, usa strutture dati senza latch e controllo ottimistico della concorrenza multi-versione. Il risultato è prevedibile, con bassa latenza inferiore al millisecondo e un'elevata velocità di trasmissione con scalabilità lineare per le transazioni di database. Il miglioramento effettivo delle prestazioni dipende da molti fattori, ma sono comuni miglioramenti delle prestazioni da 5 a 20 volte.
La tabella seguente riepiloga i modelli di carico di lavoro che possono trarre vantaggio dall'uso di In-Memory OLTP:
| Scenario di implementazione | Scenario di implementazione | Vantaggi di In-Memory OLTP |
|---|---|---|
| Frequenza di inserimento dati elevata da più connessioni simultanee. | Principalmente archivio solo accodamento. Impossibile tenere il passo con il carico di lavoro di inserimento. |
Eliminare i conflitti. Ridurre il logging |
| Le prestazioni di lettura e la scalabilità con inserimenti e aggiornamenti periodici in batch. | Operazioni di lettura ad alte prestazioni, in particolare quando ogni richiesta server ha più operazioni di lettura da eseguire. Non è possibile soddisfare i requisiti di aumento delle prestazioni. |
Eliminare la contesa quando arrivano nuovi dati. Recupero dei dati con latenza inferiore. Ridurre al minimo il tempo di esecuzione del codice. |
| Elaborazione intensiva della logica di business nel server di database. | Inserire, aggiornare ed eliminare il carico di lavoro. Calcolo intensivo all'interno di procedure memorizzate. Contesa di lettura e scrittura. |
Eliminare i conflitti. Ridurre al minimo il tempo di esecuzione del codice per ridurre la latenza e migliorare la velocità effettiva. |
| Bassa latenza. | Necessitano transazioni aziendali a bassa latenza che le soluzioni di database tipiche non possono ottenere. | Eliminare i conflitti. Ridurre al minimo il tempo di esecuzione del codice. Esecuzione del codice a bassa latenza. Recupero efficiente dei dati. |
| Gestione dello stato della sessione. | Inserimenti, aggiornamenti e ricerche puntuali frequenti. Carico su larga scala da numerosi server Web senza stato. |
Eliminare i conflitti. Recupero efficiente dei dati. Riduzione o rimozione di I/O facoltative quando si usano tabelle non durevoli |
Per altre informazioni sugli scenari in cui In-Memory OLTP comporterà i migliori miglioramenti delle prestazioni, vedere In-Memory OLTP - Modelli di carico di lavoro comuni e considerazioni sulla migrazione.
In-Memory OLTP migliorerà le prestazioni in OLTP con transazioni a esecuzione breve.
I modelli di programmazione che In-Memory OLTP miglioreranno includono scenari di concorrenza, ricerche puntuali, carichi di lavoro in cui sono presenti molti inserimenti e aggiornamenti e logica aziendale nelle stored procedure.
L'integrazione con SQL Server consente di disporre di tabelle ottimizzate per la memoria e tabelle basate su disco nello stesso database e di eseguire query su entrambi i tipi di tabelle.
In SQL Server 2014 (12.x) esistono limitazioni nell'area di attacco Transact-SQL supportata per In-Memory OLTP.
In-Memory OLTP consente di ottenere miglioramenti significativi in termini di prestazioni e scalabilità usando:
Algoritmi ottimizzati per l'accesso ai dati residenti in memoria.
Controllo della concorrenza ottimistica che elimina i blocchi logici.
Oggetti privi di blocchi che eliminano tutti i blocchi fisici e i latch. I thread che eseguono operazioni transazionali non usano blocchi o latch per il controllo della concorrenza.
Procedure memorizzate compilate nativamente, che offrono prestazioni significativamente migliori rispetto alle procedure interpretate, durante l'accesso a una tabella ottimizzata per la memoria.
Importante
Alcune modifiche della sintassi alle tabelle e alle stored procedure saranno necessarie per usare In-Memory OLTP. Per altre informazioni, vedere Migrazione a In-Memory OLTP. Prima di tentare di eseguire la migrazione di una tabella basata su disco a una tabella ottimizzata per la memoria, vedere Determinare se una tabella o una stored procedure deve essere convertita in In-Memory OLTP per vedere quali tabelle e stored procedure trarranno vantaggio da In-Memory OLTP.
In questa sezione
In questa sezione vengono fornite informazioni sui concetti seguenti:
| Argomento | Descrizione |
|---|---|
| Requisiti per l'uso di tabelle ottimizzate per la memoria | Vengono illustrati i requisiti hardware e software e le linee guida per l'uso di tabelle ottimizzate per la memoria. |
| Uso di In-Memory OLTP in un ambiente di macchine virtuali | Illustra l'uso di In-Memory OLTP in un ambiente virtualizzato. |
| esempi di codice OLTPIn-Memory | Contiene esempi di codice che illustrano come creare e usare una tabella ottimizzata per la memoria. |
| Tabelle ottimizzate per la memoria | Introduce tabelle ottimizzate per la memoria. |
| Variabili di tabellaMemory-Optimized | Esempio di codice che illustra come usare una variabile di tabella ottimizzata per la memoria anziché una variabile di tabella tradizionale per ridurre l'uso di tempdb. |
| Indici nelle tabelle Memory-Optimized | Introduce gli indici ottimizzati per la memoria. |
| Procedure memorizzate compilate in modo nativo | Introduce stored procedure nativamente compilate. |
| Gestione della memoria per OLTP in memoria | Comprendere e gestire l'utilizzo della memoria nel sistema. |
| Creazione e gestione dell'archiviazione per gli oggetti con ottimizzazione per la memoria | Vengono illustrati i dati e i file differenziali, che archiviano informazioni sulle transazioni nelle tabelle ottimizzate per la memoria. |
| Eseguire il backup, ripristinare e recuperare tabelle con ottimizzazione per la memoria | Discute il backup, il ripristino e il recupero per le tabelle ottimizzate per la memoria. |
| Supporto di Transact-SQL per OLTP in memoria | Discute il sostegno Transact-SQL per In-Memory OLTP. |
| Supporto della disponibilità elevata per i database OLTP In-Memory | Vengono illustrati i gruppi di disponibilità e il clustering di failover in In-Memory OLTP. |
| Supporto di SQL Server per In-Memory OLTP | Elenca la sintassi e le funzionalità nuove e aggiornate che supportano tabelle ottimizzate per la memoria. |
| Migrazione a OLTP in memoria | Viene illustrato come eseguire la migrazione di tabelle basate su disco a tabelle ottimizzate per la memoria. |
Altre informazioni su In-Memory OLTP sono disponibili in: