CREATE TABLE DurableTbl (
AccountNo INT NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 28713),
CustName VARCHAR(20) NOT NULL,
Gender CHAR(1) NOT NULL,
CustGroup VARCHAR(4) NOT NULL,
Addr VARCHAR(50) NULL,
Phone VARCHAR(10) NULL
) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
CREATE TABLE NonDurableTbl (...)
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_ONLY);
編譯為機器碼 DLL,免解譯,大幅提升執行效率:
CREATE PROCEDURE dbo.usp_InsertNonDurableTbl
@AccountNo INT, @CustName NVARCHAR(20), @Gender CHAR(1),
@CustGroup VARCHAR(4), @Addr VARCHAR(50), @Phone VARCHAR(10)
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH (
TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'English'
)
INSERT INTO dbo.DurableTbl (...) VALUES (...);
END;
記憶體優化表與傳統磁碟表共存,存取路徑分離(圖 1)。

圖 1. 記憶體優化表與傳統表存取架構