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.