| Termin | Definicja |
|---|---|
| CREATE TABLE (MEMORY_OPTIMIZED = ON) | Polecenie CREATE TABLE z opcją MEMORY_OPTIMIZED = ON tworzy tabelę przechowywaną w pamięci operacyjnej zamiast na dysku. Rola opcji MEMORY_OPTIMIZED w SQL ServerOpcja „Przechowywanie w pamięci” nie oznacza, że dane zawsze znikają po ponownym uruchomieniu instancji. O zachowaniu tabeli decyduje między innymi opcja trwałości. Tabela utworzona z Warunki utworzenia tabeli zoptymalizowanej pamięciowoPrzed wykonaniem polecenia z Definicja tabeli musi również spełniać ograniczenia właściwe dla In-Memory OLTP. Tabela zoptymalizowana pamięciowo wymaga klucza indeksu, a indeksy są definiowane w ramach instrukcji tworzenia tabeli. Można użyć między innymi indeksu hashowego oraz indeksu nieklastrowanego zoptymalizowanego pamięciowo. Indeks hashowy jest przydatny przede wszystkim przy wyszukiwaniu po równości, natomiast indeks nieklastrowany lepiej odpowiada zapytaniom wykorzystującym zakresy, sortowanie lub częściowe dopasowanie wartości. Dla indeksu hashowego trzeba określić oczekiwaną liczbę kubełków parametrem Trwałość danych, indeksowanie i wykonanie zapytańTabela pamięciowa jest przechowywana w pamięci, dlatego jej rozmiar musi być uwzględniony w planowaniu dostępnej pamięci dla instancji SQL Server. W przypadku tabeli Największe korzyści pojawiają się w scenariuszach z dużą liczbą krótkich transakcji, częstymi aktualizacjami oraz wysoką współbieżnością. Tabela może ograniczyć narzut klasycznych blokad i zmniejszyć koszty operacji na stronach danych, ale zapytania nadal muszą korzystać z właściwych indeksów. Przy nieodpowiednim indeksie wyszukiwanie może wymagać odczytu wielu wierszy, a koszt kopiowania danych, sortowania lub łączenia tabel może pozostać istotny. Przed migracją należy porównać plany wykonania, czasy transakcji, obciążenie pamięci oraz zachowanie aplikacji w warunkach współbieżnego dostępu. Ważne jest także rozróżnienie tabel pamięciowych od natywnie kompilowanych procedur składowanych. Diagnostyka problemów z tabelą MEMORY_OPTIMIZED = ONJeżeli polecenie Po utworzeniu tabeli warto obserwować wykorzystanie pamięci przez obiekty In-Memory OLTP, rozmiar dziennika transakcji, czas oczekiwania transakcji oraz liczbę konfliktów współbieżności. Szczególnej uwagi wymagają operacje aktualizacji i usuwania, ponieważ wersjonowanie wierszy może zwiększać zużycie pamięci do czasu wykonania przez SQL Server odpowiedniego odzyskiwania. W środowisku serwisowym analiza takiej konfiguracji obejmuje sprawdzenie definicji bazy, komunikatów SQL Server, planów zapytań i objawów zgłaszanych przez aplikację. Diagnostyka powinna potwierdzić, czy problem dotyczy konfiguracji In-Memory OLTP, niedopasowanego indeksu, braku pamięci, czy niezgodności użytej funkcji z daną wersją silnika. W przypadku komputera wykorzystywanego do lokalnego uruchamiania SQL Server istotne jest również sprawdzenie ilości dostępnej pamięci RAM, stanu dysku oraz poprawności działania samej instancji. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną diagnostykę i naprawę laptopów, komputerów PC oraz ich podzespołów, gdy problemy z konfiguracją środowiska wpływają na działanie oprogramowania bazodanowego. |