sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2016:In-Memory OLTP Enhancements

Uppdatering:30 november 2015

SQL Server-teamet har publicerat ett blogginlägg med lite ny funktionalitet för In-Memory OLTP i CTP 3.1:

  • SQL Server 2016 Community Technology Preview 3.1 är tillgänglig

Uppdatering:17 november 2015
Jos de Bruijn har publicerat en uppdaterad lista över OLTP-ändringar i minnet från och med CTP 3.0:

  • In-Memory OLTP – vad är nytt i SQL2016 CTP3

Jag skrev tidigare om ändringarna av tillgänglighetsgrupper i SQL Server 2016, som jag lärde mig om på MS Ignite till stor del från en session av Joey D'Antoni och Denny Cherry. En annan bra session var från Kevin Farlee och Sunil Agarwal om de förändringar som väntar för In-Memory OLTP (funktionen tidigare känd som "Hekaton"). En intressant sidonotering:videon från den här sessionen visar en demo där Kevin kör CTP2.0 (byggd 13.0.200) – även om det förmodligen inte är bygget vi kommer att se offentligt i sommar.

Funktion/Begränsning SQL Server 2014 SQL Server 2016
Maximal kombinerad storlek för hållbara bord 256 GB 2 TB
LOB (varbinary(max), [n]varchar(max)) Stöds inte Stöds*
Transparent Data Encryption (TDE) Stöds inte Stöds
Offline Checkpoint-trådar 1 1 per behållare
ÄNDRA PROCEDUR / sp_recompile Stöds inte Stöds (helt online)
Inkapslade inbyggda proceduranrop Stöds inte Stöds
Nativet-kompilerade skalära UDF:er Stöds inte Stöds
ÄNDRA TABELL Stöds inte
(DROPP / RE-CREATE)
Stöds delvis
(offline – detaljer nedan)
DML-utlösare Stöds inte Stöds delvis
(EFTER, inbyggt kompilerad)
Index på NULL-kolumner Stöds inte Stöds
Icke-BIN2-kollationer i indexnyckelkolumner Stöds inte Stöds
Icke-latinska teckentabeller för [var]char-kolumner Stöds inte Stöds
Icke-BIN2-jämförelse/sortering i inbyggda moduler Stöds inte Stöds
Främmande nycklar Stöds inte Stöds
Kontrollera/Unika begränsningar Stöds inte Stöds
Parallellism Stöds inte Stöds
YTTRE JOIN, OR, NOT, UNION [ALLA], DISTINCT, EXISTS, IN Stöds inte Stöds
Multiple Active Result Sets (MARS)
(Betyder bättre stöd för Entity Framework.)
Stöds inte Stöds
SSMS-tabelldesigner Stöds inte Stöds

* LOB-stöd kommer inte att vara tillgängligt i CTP-sändningen i sommar.

ALTER TABLE är en offlineoperation och kommer att stödja att lägga till/släppa kolumner, index och begränsningar. Det kommer att finnas nya syntaxtillägg för att stödja några av dessa åtgärder. Du kan ändra dina bucket count-värden med en enkel ombyggnad (observera dock att varje ombyggnad kräver 2X minne):

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

Utöver dessa kapacitets-/funktionsförbättringar finns det även några ytterligare prestandaförbättringar. Till exempel kommer det att finnas möjligheten att lägga till ett i minnet, uppdateringsbart, icke-klustrat kolumnlagerindex över antingen diskbaserade eller i minnestabeller. Och de har förenklat sättet att bearbeta borttagna rader (2014 använder de operationerna FileStream; 2016 kommer de att hoppa över det här steget). Det har också skett förbättringar av migrationsrådgivarna och analysatorn för bästa praxis – de är nu lättare när det gäller datainsamling och ger mer sammanhang om migreringskomplexitet.

Det finns fortfarande vissa begränsningar med vissa av dessa förändringar. TDE, som ett exempel, kräver ytterligare steg vid uppgradering av en databas. Men det är uppenbart att i takt med att In-Memory OLTP blir mognare, slår de bort många av de största vägspärrarna för adoption.

Men vänta, det finns mer! Om du vill använda In-Memory OLTP i Azure SQL Database kommer det att finnas en offentlig förhandsvisning med fullt stöd i sommar. Så du behöver inte din egen fysiska server med 2 TB minne för att driva den här funktionen till dess gränser. Förvänta dig dock inte att den här funktionen kommer in i Standard Edition.


  1. Konvertera månadsnummer till månadsnamn i PostgreSQL

  2. Förlorade anslutningen till MySQL-servern vid "läsning av initialt kommunikationspaket", systemfel:0

  3. Hur man kontrollerar serverstatus i MySQL Workbench med hjälp av GUI

  4. Hur reparerar jag en InnoDB-tabell?