Tworzenie tabeli czasowej zoptymalizowanej pod kątem pamięci w wersji systemowej
Dotyczy: SQL Server 2016 (13.x) i nowszych
azure SQL Managed Instance
Podobnie jak w przypadku tworzenia tabeli historii opartej na dysku, można utworzyć tabelę czasową zoptymalizowaną pod kątem pamięci na kilka sposobów.
Aby utworzyć tabele zoptymalizowane pod kątem pamięci, należy najpierw utworzyć zoptymalizowanej pod kątem pamięci grupy plików.
Nota
Tabele czasowe zoptymalizowane pod kątem pamięci są dostępne tylko w programie SQL Server i usłudze Azure SQL Managed Instance. Tabele zoptymalizowane pod kątem pamięci i tabele czasowe są niezależnie dostępne w usłudze Azure SQL Database.
Tworzenie tabeli czasowej zoptymalizowanej pod kątem pamięci z domyślną tabelą historii
Tworzenie tabeli czasowej z domyślną tabelą historii jest wygodną opcją, jeśli chcesz kontrolować nazewnictwo i nadal polegać na systemie w celu utworzenia tabeli historii z konfiguracją domyślną. W poniższym przykładzie nowa tabela czasowa wersjonowana przez system, pamięciooptymalizowana, została połączona z nową dyskową tabelą historii.
CREATE SCHEMA History;
GO
CREATE TABLE dbo.Department (
DepartmentNumber CHAR(10) NOT NULL PRIMARY KEY NONCLUSTERED,
DepartmentName VARCHAR(50) NOT NULL,
ManagerID INT NULL,
ParentDepartmentNumber CHAR(10) NULL,
ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START HIDDEN NOT NULL,
ValidTo DATETIME2 GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
PERIOD FOR SYSTEM_TIME(ValidFrom, ValidTo)
)
WITH (
MEMORY_OPTIMIZED = ON,
DURABILITY = SCHEMA_AND_DATA,
SYSTEM_VERSIONING = ON (HISTORY_TABLE = History.DepartmentHistory)
);
Tworzenie tabeli czasowej zoptymalizowanej pod kątem pamięci z istniejącą tabelą historii
Możesz utworzyć tabelę czasową połączoną z istniejącą tabelą historii, jeśli chcesz dodać przechowywanie wersji systemu przy użyciu istniejącej tabeli. Ten scenariusz jest przydatny, gdy chcesz migrować niestandardowe rozwiązanie czasowe do obsługi wbudowanej. W poniższym przykładzie zostanie utworzona nowa tabela czasowa połączona z istniejącą tabelą historii.
--Existing table
CREATE TABLE Department_History (
DepartmentNumber CHAR(10) NOT NULL,
DepartmentName VARCHAR(50) NOT NULL,
ManagerID INT NULL,
ParentDepartmentNumber CHAR(10) NULL,
ValidFrom DATETIME2 NOT NULL,
ValidTo DATETIME2 NOT NULL
);
--Temporal table
CREATE TABLE Department (
DepartmentNumber CHAR(10) NOT NULL PRIMARY KEY NONCLUSTERED,
DepartmentName VARCHAR(50) NOT NULL,
ManagerID INT NULL,
ParentDepartmentNumber CHAR(10) NULL,
ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START HIDDEN NOT NULL,
ValidTo DATETIME2 GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
PERIOD FOR SYSTEM_TIME(ValidFrom, ValidTo)
)
WITH (
SYSTEM_VERSIONING = ON (
HISTORY_TABLE = dbo.Department_History,
DATA_CONSISTENCY_CHECK = ON
),
MEMORY_OPTIMIZED = ON,
DURABILITY = SCHEMA_AND_DATA
);
Powiązana zawartość
- Tabele czasowe z wersjonowaniem systemowym z tabelami zoptymalizowanymi pod kątem pamięci
- Pracuj z zoptymalizowanymi pod kątem pamięci systemowo-wersjonowanymi tabelami czasowymi
- Monitorowanie tabel czasowych zoptymalizowanych pod kątem pamięci w wersji systemowej
- wydajność systemowej tabeli czasowej zoptymalizowanej pod kątem pamięci
- tabele czasowe
- sprawdzanie spójności systemu tabel czasowych
- Zarządzanie przechowywaniem danych historycznych w systemowo-wersjonowanych tabelach temporalnych
- Widoki i funkcje metadanych tabel czasowych