Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server 2016:miglioramenti OLTP in memoria

Aggiornamento:30 novembre 2015

Il team di SQL Server ha pubblicato un post sul blog con alcune nuove funzionalità per In-Memory OLTP in CTP 3.1:

  • È disponibile SQL Server 2016 Community Technology Preview 3.1

Aggiornamento:17 novembre 2015
Jos de Bruijn ha pubblicato un elenco aggiornato delle modifiche OLTP in memoria a partire da CTP 3.0:

  • OLTP in memoria:le novità di SQL2016 CTP3

Ho pubblicato in precedenza le modifiche ai gruppi di disponibilità in SQL Server 2016, che ho appreso in MS Ignite in gran parte da una sessione di Joey D'Antoni e Denny Cherry. Un'altra grande sessione è stata di Kevin Farlee e Sunil Agarwal sui cambiamenti in serbo per In-Memory OLTP (il film precedentemente noto come "Hekaton"). Una nota a margine interessante:il video di questa sessione mostra una demo in cui Kevin esegue CTP2.0 (build 13.0.200), anche se probabilmente non è la build che vedremo pubblicamente quest'estate.

Caratteristiche/Limiti SQL Server 2014 SQL Server 2016
Dimensione massima combinata di tavoli durevoli 256 GB 2 TB
LOB (varbinary(max), [n]varchar(max)) Non supportato Supportato*
Crittografia dati trasparenti (TDE) Non supportato Supportato
Thread di checkpoint offline 1 1 per contenitore
ALTER PROCEDURE / sp_recompile Non supportato Supportato (completamente online)
Chiamate di procedure native nidificate Non supportato Supportato
UDF scalari compilati in modo nativo Non supportato Supportato
ALTER TABELLA Non supportato
(DROP / re-CREATE)
Parzialmente supportato
(offline – dettagli sotto)
Attivatori DML Non supportato Parzialmente supportato
(DOPO, compilato in modo nativo)
Indici su colonne NULLable Non supportato Supportato
Confrontazioni non BIN2 nelle colonne della chiave dell'indice Non supportato Supportato
Codici codici non latini per [var]colonne char Non supportato Supportato
Confronto/ordinamento non BIN2 nei moduli nativi Non supportato Supportato
Chiavi estere Non supportato Supportato
Controllo/Vincoli univoci Non supportato Supportato
Parallelismo Non supportato Supportato
OUTER JOIN, OR, NOT, UNION [ALL], DISTINCT, EXISTS, IN Non supportato Supportato
Multiple Active Result Sets (MARS)
(Significa un migliore supporto per Entity Framework.)
Non supportato Supportato
Progettazione tabelle SSMS Non supportato Supportato

* Il supporto LOB non sarà disponibile nella spedizione CTP quest'estate.

ALTER TABLE è un'operazione offline e supporterà l'aggiunta/rimozione di colonne, indici e vincoli. Ci saranno nuove estensioni della sintassi per supportare alcune di queste azioni. Puoi modificare i valori del numero di bucket con una semplice ricostruzione (tuttavia, tieni presente che qualsiasi ricostruzione richiederà 2 volte la memoria):

ALTER TABLE dbo.InMemoryTable
  ALTER INDEX IX_NC_Hash 
  REBUILD WITH (BUCKET_COUNT = 1048576);

Oltre a questi miglioramenti di capacità/funzionalità, ci sono anche alcuni miglioramenti delle prestazioni aggiuntivi. Ad esempio, sarà possibile aggiungere un indice columnstore in memoria, aggiornabile e non in cluster su tabelle basate su disco o in memoria. E hanno semplificato il modo in cui vengono elaborate le righe eliminate (nel 2014 tali operazioni utilizzano FileStream; nel 2016 salteranno questo passaggio). Sono stati inoltre apportati miglioramenti ai consulenti per la migrazione e all'analizzatore delle migliori pratiche:ora sono più leggeri nella raccolta dei dati e forniscono più contesto sulla complessità della migrazione.

Ci sono ancora alcune limitazioni con alcune di queste modifiche. TDE, ad esempio, richiede passaggi aggiuntivi durante l'aggiornamento di un database. Ma è chiaro che man mano che In-Memory OLTP diventa più maturo, stanno eliminando molti dei maggiori ostacoli all'adozione.

Ma aspetta, c'è di più! Se vuoi usare OLTP in memoria nel database SQL di Azure, quest'estate sarà disponibile un'anteprima pubblica con supporto completo. Quindi non avrai bisogno del tuo server fisico con 2 TB di memoria per spingere questa funzionalità al limite. Tuttavia, non aspettarti alcun passaggio di questa funzione nella Standard Edition.