Aktualizacja:30 listopada 2015
Zespół SQL Server opublikował wpis w blogu z nowymi funkcjami In-Memory OLTP w CTP 3.1:
- Dostępny jest SQL Server 2016 Community Technology Preview 3.1
Aktualizacja:17 listopada 2015
Jos de Bruijn opublikował zaktualizowaną listę zmian OLTP w pamięci od wersji CTP 3.0:
- In-Memory OLTP – co nowego w SQL2016 CTP3
Wcześniej pisałem o zmianach w Grupach Dostępności w SQL Server 2016, o których dowiedziałem się na MS Ignite w dużej mierze z sesji Joey'a D'Antoniego i Denny'ego Cherry'ego. Kolejną świetną sesję przeprowadzili Kevin Farlee i Sunil Agarwal na temat zmian, jakie czekają na In-Memory OLTP (funkcja znana wcześniej jako „Hekaton”). Ciekawa uwaga:wideo z tej sesji pokazuje demo, w którym Kevin używa CTP2.0 (kompilacja 13.0.200) – choć prawdopodobnie nie jest to wersja, którą zobaczymy publicznie tego lata.
Funkcja/limit | SQL Server 2014 | SQL Server 2016 |
---|---|---|
Maksymalny łączny rozmiar trwałych stołów | 256 GB | 2 TB |
LOB (zmienna(max), [n]varchar(max)) | Nieobsługiwane | Obsługiwane* |
Przejrzyste szyfrowanie danych (TDE) | Nieobsługiwane | Obsługiwane |
Wątki punktu kontrolnego offline | 1 | 1 na kontener |
ZMIANA PROCEDURY / sp_recompile | Nieobsługiwane | Obsługiwane (w pełni online) |
Zagnieżdżone wywołania procedur natywnych | Nieobsługiwane | Obsługiwane |
Natywnie skompilowane skalarne UDF | Nieobsługiwane | Obsługiwane |
ZMIEŃ TABELĘ | Nieobsługiwane (UPUŚĆ / UTWÓRZ ponownie) | Częściowo obsługiwane (offline – szczegóły poniżej) |
Wyzwalacze DML | Nieobsługiwane | Częściowo obsługiwane (PO, natywnie skompilowane) |
Indeksy w kolumnach dopuszczających NULL | Nieobsługiwane | Obsługiwane |
Sortowanie inne niż BIN2 w kolumnach klucza indeksu | Nieobsługiwane | Obsługiwane |
Niełacińskie strony kodowe dla kolumn [var]char | Nieobsługiwane | Obsługiwane |
Porównanie / sortowanie bez BIN2 w modułach natywnych | Nieobsługiwane | Obsługiwane |
Klucze obce | Nieobsługiwane | Obsługiwane |
Sprawdź/unikalne ograniczenia | Nieobsługiwane | Obsługiwane |
Równoległość | Nieobsługiwane | Obsługiwane |
ZŁĄCZENIE ZEWNĘTRZNE, LUB, NIE, UNION [WSZYSTKIE], DISTINCT, EXISTS, IN | Nieobsługiwane | Obsługiwane |
Wiele aktywnych zestawów wyników (MARS) (Oznacza lepszą obsługę Entity Framework.) | Nieobsługiwane | Obsługiwane |
Projektant tabel SSMS | Nieobsługiwane | Obsługiwane |
* Obsługa LOB nie będzie dostępna w dostawach CTP tego lata.
ALTER TABLE
jest operacją w trybie offline i będzie obsługiwać dodawanie/upuszczanie kolumn, indeksów i ograniczeń. Pojawią się nowe rozszerzenia składni obsługujące niektóre z tych działań. Możesz zmienić wartości liczników łyżek za pomocą prostej przebudowy (należy jednak pamiętać, że każda przebudowa będzie wymagała 2X pamięci):
ALTER TABLE dbo.InMemoryTable ALTER INDEX IX_NC_Hash REBUILD WITH (BUCKET_COUNT = 1048576);
Oprócz tych ulepszeń pojemności/funkcji, istnieje również kilka dodatkowych ulepszeń wydajności. Na przykład będzie można dodać indeks magazynu kolumn w pamięci, aktualizowalny, nieklastrowany do tabel opartych na dyskach lub w pamięci. I uprościły sposób przetwarzania usuniętych wierszy (w 2014 roku te operacje wykorzystują FileStream; w 2016 roku pominą ten krok). Wprowadzono również ulepszenia w doradcach migracji i analizatorze najlepszych praktyk – teraz są one lżejsze w zakresie gromadzenia danych i zapewniają więcej kontekstu na temat złożoności migracji.
W przypadku niektórych z tych zmian nadal istnieją pewne ograniczenia. Na przykład TDE wymaga dodatkowych kroków podczas uaktualniania bazy danych. Ale jasne jest, że w miarę jak OLTP w pamięci staje się bardziej dojrzały, usuwają wiele największych przeszkód na drodze do adopcji.
Ale czekaj, jest więcej! Jeśli chcesz używać protokołu OLTP w pamięci w Azure SQL Database, latem tego roku zostanie udostępniona publiczna wersja zapoznawcza z pełną obsługą. Nie potrzebujesz więc własnego serwera fizycznego z 2 TB pamięci, aby wykorzystać tę funkcję do granic możliwości. Nie oczekuj jednak, że ta funkcja zostanie przeniesiona do wersji standardowej.