Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 1141|Odpowiedź: 1

[Źródło] Tabele zoptymalizowane pod pamięć dla baz danych SQL SERVER

[Skopiuj link]
Opublikowano 2025-5-10 21:28:18 | | | |
Wprowadzenie do tablic zoptymalizowanych pod pamięć

Tabele zoptymalizowane pod pamięć to tabele tworzone za pomocą CREATE TABLE (Transact-SQL).

Domyślnie tabele zoptymalizowane pod pamięć są w pełni trwałe. Podobnie jak transakcje na (tradycyjnych) tablicach dyskowych, transakcje na tablicach zoptymalizowanych pod pamięć są w pełni atomowe, spójne, izolowane i trwałe (ACID). Tabele zoptymalizowane pod pamięć oraz natywnie kompilowane procedury przechowywane obsługują jedynie podzbiór funkcji Transact-SQL.

Od SQL Server 2016 oraz Azure SQL Database nie ma ograniczeń dotyczących specyficznej dla pamięci sortacji OLTP lub stron kodu.

Pamięć podstawowa tabeli zoptymalizowanej pod pamięć jest pamięcią podstawową. Czytaj wiersze z tabeli z pamięci i zapisuj je w pamięci. Kolejna kopia danych tabeli jest przechowywana na dysku, ale tylko w celach trwałości. Więcej informacji o tabelach trwałych można znaleźć w artykule Tworzenie i zarządzanie pamięcią obiektów do optymalizacji pamięci. Dane w tabelach zoptymalizowanych pod pamięć są odczytywane z dysku tylko podczas odzyskiwania bazy danych (na przykład po ponownym uruchomieniu serwera).

Dla większych osiągnięć wydajności, OLTP w pamięci obsługuje tabele trwałe z transakcyjnym trwałym opóźnieniem. Opóźnione, trwałe transakcje są zapisywane na dysku krótko po dokonaniu transakcji i powrocie kontroli do klienta. W zamian za poprawę wydajności, zadeklarowane transakcje, które nie są zapisywane na dysku, są tracone w przypadku awarii serwera lub awarii.

Oprócz domyślnych tabel zoptymalizowanych pod pamięć trwałą, SQL Server obsługuje niezapisane, nietrwałe tabele zoptymalizowane pod pamięć, a ich dane nie są przechowywane na dysku. Oznacza to, że transakcje na tych tabelach nie wymagają żadnego wyjścia z dysków, ale jeśli dojdzie do awarii serwera lub przełączenia awaryjnego, dane zostają utracone.

OLTP w pamięci integruje się z SQL Server, zapewniając płynne doświadczenie we wszystkich aspektach, takich jak programowanie, wdrożenie, zarządzanie i wsparcie. Baza danych może zawierać zarówno obiekty w pamięci, jak i obiekty oparte na dysku.

Wiersze w tabeli zoptymalizowanej pod pamięć są wersjonowane. Oznacza to, że każdy wiersz w tabeli może mieć kilka wersji. Wszystkie wersje wierszy są utrzymywane w tej samej strukturze danych tabeli. Wersjonowanie wiersza służy do umożliwienia jednoczesnego odczytu i zapisu do tego samego wiersza. Aby uzyskać więcej informacji o jednoczesnych odczytach i zapisach do tego samego wiersza, zobacz Rzeczy w tabeli optymalizacji pamięci.

Przybliżone kroki i ograniczenia użycia

Kroki:

(1) Utworzenie bazy danych i MEMORY_OPTIMIZED_DATA grupy plików (zmienij grupę plików do dodania bazy danych, każda baza może mieć tylko jedną MEMORY_OPTIMIZED_DATA grupę plików!!) )
(2) Dodaj folder do grupy plików do przechowywania plików danych (prosimy nie tworzyć tego folderu wcześniej, użyj alter database add file() do grupy plików)
(3) Tworzenie tabel zoptymalizowanych pod pamięć trwałych/nietrwałych (SQL Server 2014 jest domyślnie zachowywany), a także należy zdefiniować klucz główny na podstawie nieagregowanego indeksu skrótu. Indeksy hasshed są jedynym obsługiwanym typem indeksu w tabelach zoptymalizowanych pod pamięć.
(4) Używanie lokalnie skompilowanych procedur przechowywanych: Tabele zoptymalizowane pod pamięć obsługują lokalnie skompilowane procedury przechowywane, o ile te procedury odwołują się wyłącznie do tabel zoptymalizowanych pod pamięć.

Ograniczać:

(1) Tabela zoptymalizowana pod pamięć musi być umieszczona w bazie danych z grupą plików CONTAINS MEMORY_OPTIMIZED_DATA.
(2) Tabela zoptymalizowana pod pamięć musi zdefiniować klucz główny na podstawie nieagregowanego indeksu haszującego, a tabela musi być zdefiniowanaNie obsługuje sprawdzanie klucza obcego lub ograniczeń
(3) Tabela optymalizacji pamięci musi zawierać wystarczającą ilość pamięci, w przeciwnym razie operacje takie jak wstawianie aktualizacji nie ulegną awarii.
(4) SQL Server 2014 ma wiele ograniczeń dotyczących tych tabel. Na przykład nie obsługują kluczy obcych ani sprawdzania ograniczeń (co przypomina silnik pamięci MySQL), oniPola IDENTITY ani wyzwalacze DML również nie są obsługiwane

Skorzystaj z tutoriala

Wersje bazy danych przedstawiają się następująco:

Microsoft SQL Server 2022 (RTM-CU15-GDR) (KB5046059) - 16.0.4150.1 (X64)
        25 września 2024 17:34:41
        Copyright (C) 2022 Microsoft Corporation
        Wersja korporacyjna: Licencjonowanie oparte na rdzeniach (64-bit) na Linuksie (Ubuntu 22.04.4 LTS) <X64>

Najpierw stwórz bazę danych i grupę plików za pomocą następującego polecenia:

Jeśli nie utworzysz grupy zoptymalizowanej pod pamięć, błąd zostanie zgłoszony podczas tworzenia tabeli zoptymalizowanej pod pamięć:Nie można tworzyć tabel zoptymalizowanych pod pamięć. Aby tworzyć tabele zoptymalizowane pod pamięć, baza danych musi mieć MEMORY_OPTIMIZED_FILEGROUP działający online i zawierający co najmniej jeden kontener.

Stwórz dwie tabele zoptymalizowane pod pamięć do testowania, jedną trwałą, drugą nietrwałą, za pomocą następującego polecenia:

Tablica optymalizacji pamięci ma dwie opcje (WYTRZYMAŁOŚĆ = SCHEMA_AND_DATA), (TRWAŁOŚĆ = SCHEMA_ONLY)
Tabela wytrzymałości: TRWAŁOŚĆ =SCHEMA_AND_DATA
Tabela nietrwała: TRWAŁOŚĆ =SCHEMA_ONLY

Testy są wstawiane osobno do tabeli optymalizacji pamięci100 000 artykułów(faktycznie 100002 elementy) danych, polecenie brzmi następująco:





Trwałość włącza się w 28 sekund, a bez niej 1 sekundę

Odniesienie:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.




Poprzedni:Uwielbiam recyklingować oprogramowanie do kontroli jakości laptopów
Następny:Składnia C# 8.0 wykorzystuje indeks i zakres
 Ziemianin| Opublikowano 2025-5-10 21:36:40 |
Tablica normalna wstawia 100 000 fragmentów danych i jej wykonanie zajmuje 18 sekund. Jak pokazano poniżej:



Skrypt:
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com