記憶體優化的表型別和臨時表
例如,這是傳統的基於 tempdb 的表型別:
CREATE TYPE dbo.testTableType AS TABLE
(
col1 INT NOT NULL,
col2 CHAR(10)
);
要對記憶體優化此表型別,只需新增選項 memory_optimized=on
,如果原始型別中沒有,則新增索引:
CREATE TYPE dbo.testTableType AS TABLE
(
col1 INT NOT NULL,
col2 CHAR(10)
)WITH (MEMORY_OPTIMIZED=ON);
全域性臨時表是這樣的:
CREATE TABLE ##tempGlobalTabel
(
Col1 INT NOT NULL ,
Col2 NVARCHAR(4000)
);
記憶體優化的全域性臨時表:
CREATE TABLE dbo.tempGlobalTabel
(
Col1 INT NOT NULL INDEX ix NONCLUSTERED,
Col2 NVARCHAR(4000)
)
WITH
(MEMORY_OPTIMIZED = ON,
DURABILITY = SCHEMA_ONLY);
記憶體優化全域性臨時表(## temp):
- 使用與全域性
##temp
表相同的模式建立新的SCHEMA_ONLY
記憶體優化表- 確保新表至少有一個索引
- 將 Transact-SQL 語句中對
##temp
的所有引用更改為新的記憶體優化表 temp - 用
DELETE FROM temp
替換程式碼中的DROP TABLE ##temp
語句,以清理內容 - 從程式碼中刪除
CREATE TABLE ##temp
語句 - 這些語句現在是多餘的