Sposób implementacji
1. Utworzenie typu tabelarycznego o strukturze takiej, jak nasza tabela tymczasowa
2. Zadeklarowanie zmiennej jako jako zmiennej utworzonego typu.
USE HKDB;
CREATE TYPE SalesOrderDetailType_inmem
AS TABLE
(
OrderQty smallint NOT NULL,
ProductID int NOT NULL,
SpecialOfferID int NOT NULL,
LocalID int NOT NULL,
INDEX IX_ProductID NONCLUSTERED HASH (ProductID) WITH (BUCKET_COUNT = 131072),
INDEX IX_SpecialOfferID NONCLUSTERED (SpecialOfferID)
)
WITH (MEMORY_OPTIMIZED = ON );
GO
DECLARE @SalesDetail SalesOrderDetailType_inmem;
GO
Wady rozwiązania
- Wymagana jest edycja Enterprise i wersja co najmniej 2014
Zalety:
- zmniejszony udział tempdb - każda baza ma swoją pulę pamięci, nie korzysta z zasobów tempdb
- zadeklarowana zmienna ma indeks!
- możliwy brak utrwalenia danych na dysku, co powoduje ekstremalnie szybkie przetwarzanie danych (wszystko w RAM)
- zoptymalizowane zapisy do logów transakcyjnych
- i wszystkie inne zalety technologii In-Memory OLTP
Przykład zaczerpnięty z książki "SQL Server Internals: In-Memory OLTP, Inside the SQL Server 2014 Hekaton Engine" Kalen Delaney
Brak komentarzy:
Prześlij komentarz