内存优化的表类型和临时表
例如,这是传统的基于 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
语句 - 这些语句现在是多余的