記憶體優化的表型別和臨時表

例如,這是傳統的基於 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):

  1. 使用與全域性 ##temp 表相同的模式建立新的 SCHEMA_ONLY 記憶體優化表
    • 確保新表至少有一個索引
  2. 將 Transact-SQL 語句中對 ##temp 的所有引用更改為新的記憶體優化表 temp
  3. DELETE FROM temp 替換程式碼中的 DROP TABLE ##temp 語句,以清理內容
  4. 從程式碼中刪除 CREATE TABLE ##temp 語句 - 這些語句現在是多餘的

更多資訊