小编Cri*_*rsi的帖子

In-Memory Table 的性能比基于磁盘的表差

我在 SQL Server 2014 中有一个表,如下所示:

CREATE TABLE dbo.MyTable
(
[id1] [bigint] NOT NULL,
[id2] [bigint] NOT NULL,
[col1] [int] NOT NULL default(0),
[col2] [int] NOT NULL default(0)
)
Run Code Online (Sandbox Code Playgroud)

(id1,id2) 是 PK。基本上,id1 是一个标识符,用于对一组结果(id2、col1、col2)进行分组,其 pk 是 id2。

我正在尝试使用内存表来摆脱现有的基于磁盘的表,这是我的瓶颈。

  • 表中的数据写入->读取->删除一次。
  • 每个 id1 值都有几个(数十/数百)数千个 id2。
  • 数据在表中存储的时间很短,例如 20 秒。

对该表执行的查询如下:

-- INSERT (can vary from 10s to 10,000s of records):
INSERT INTO MyTable
  SELECT @fixedValue, id2, col1, col2 FROM AnotherTable

-- READ:
SELECT id2, col1
FROM MyTable INNER JOIN OtherTbl ON MyTable.id2 = OtherTbl.pk
WHERE …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2014 memory-optimized-tables

10
推荐指数
1
解决办法
4226
查看次数