Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server 2016:In-Memory-OLTP-Verbesserungen

Aktualisierung:30. November 2015

Das SQL Server-Team hat einen Blogbeitrag mit einigen neuen Funktionen für In-Memory OLTP in CTP 3.1 veröffentlicht:

  • SQL Server 2016 Community Technology Preview 3.1 ist verfügbar

Aktualisierung:17. November 2015
Jos de Bruijn hat eine aktualisierte Liste der In-Memory-OLTP-Änderungen ab CTP 3.0 veröffentlicht:

  • In-Memory OLTP – was ist neu in SQL2016 CTP3

Ich habe zuvor über die Änderungen an Verfügbarkeitsgruppen in SQL Server 2016 gepostet, von denen ich bei MS Ignite hauptsächlich aus einer Sitzung von Joey D'Antoni und Denny Cherry erfahren habe. Eine weitere großartige Sitzung war von Kevin Farlee und Sunil Agarwal über die bevorstehenden Änderungen für In-Memory OLTP (die Funktion, die früher als „Hekaton“ bekannt war). Eine interessante Randnotiz:Das Video dieser Sitzung zeigt eine Demo, in der Kevin CTP2.0 (Build 13.0.200) ausführt – obwohl es wahrscheinlich nicht der Build ist, den wir diesen Sommer öffentlich sehen werden.

Funktion/Einschränkung SQL Server 2014 SQL Server 2016
Maximale kombinierte Größe dauerhafter Tabellen 256 GB 2 TB
LOB (varbinary(max), [n]varchar(max)) Nicht unterstützt Unterstützt*
Transparente Datenverschlüsselung (TDE) Nicht unterstützt Unterstützt
Offline-Checkpoint-Threads 1 1 pro Container
VERFAHREN ÄNDERN / sp_recompile Nicht unterstützt Unterstützt (vollständig online)
Verschachtelte native Prozeduraufrufe Nicht unterstützt Unterstützt
Nativ kompilierte skalare UDFs Nicht unterstützt Unterstützt
TABELLE ÄNDERN Nicht unterstützt
(DROP / re-CREATE)
Teilweise unterstützt
(offline – Details unten)
DML-Trigger Nicht unterstützt Teilweise unterstützt
(NACHHER, nativ kompiliert)
Indizes für NULL-fähige Spalten Nicht unterstützt Unterstützt
Nicht-BIN2-Sortierungen in Indexschlüsselspalten Nicht unterstützt Unterstützt
Nicht-lateinische Codepages für [var]char-Spalten Nicht unterstützt Unterstützt
Nicht-BIN2-Vergleich / Sortierung in nativen Modulen Nicht unterstützt Unterstützt
Fremdschlüssel Nicht unterstützt Unterstützt
Prüfung/eindeutige Beschränkungen Nicht unterstützt Unterstützt
Parallelität Nicht unterstützt Unterstützt
OUTER JOIN, OR, NOT, UNION [ALL], DISTINCT, EXISTS, IN Nicht unterstützt Unterstützt
Multiple Active Result Sets (MARS)
(Bedeutet eine bessere Entity Framework-Unterstützung.)
Nicht unterstützt Unterstützt
SSMS-Tabellendesigner Nicht unterstützt Unterstützt

* LOB-Support wird diesen Sommer nicht im CTP-Versand verfügbar sein.

ALTER TABLE ist ein Offline-Vorgang und unterstützt das Hinzufügen/Löschen von Spalten, Indizes und Einschränkungen. Es wird neue Syntaxerweiterungen geben, um einige dieser Aktionen zu unterstützen. Sie können Ihre Bucket-Zählwerte mit einem einfachen Neuaufbau ändern (beachten Sie jedoch, dass jeder Neuaufbau doppelt so viel Arbeitsspeicher benötigt):

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

Zusätzlich zu diesen Kapazitäts-/Funktionserweiterungen gibt es auch einige zusätzliche Leistungsverbesserungen. Beispielsweise wird es die Möglichkeit geben, einen speicherinternen, aktualisierbaren, nicht geclusterten Columnstore-Index entweder über festplattenbasierte oder speicherinterne Tabellen hinzuzufügen. Und sie haben die Art und Weise vereinfacht, wie gelöschte Zeilen verarbeitet werden (2014 verwenden diese Operationen FileStream; 2016 wird dieser Schritt übersprungen). Auch die Migrationsratgeber und der Best-Practice-Analysator wurden verbessert – sie erfassen jetzt weniger Daten und bieten mehr Kontext zur Komplexität der Migration.

Bei einigen dieser Änderungen gibt es noch einige Einschränkungen. TDE erfordert beispielsweise zusätzliche Schritte beim Aktualisieren einer Datenbank. Aber es ist klar, dass mit zunehmender Reife von In-Memory-OLTP viele der größten Hindernisse für die Einführung beseitigt werden.

Aber warte, es gibt noch mehr! Wenn Sie In-Memory-OLTP in Azure SQL-Datenbank verwenden möchten, wird es diesen Sommer eine öffentliche Vorschauversion mit vollständiger Unterstützung geben. Sie benötigen also keinen eigenen physischen Server mit 2 TB Arbeitsspeicher, um diese Funktion an ihre Grenzen zu bringen. Erwarten Sie jedoch nicht, dass diese Funktion in die Standard Edition übernommen wird.