标签: memory-optimized-tables

如何删除内存优化表?

运行 SQL Server Standard 2016 SP2-CU1。我不太关心内存文件组,但我必须能够删除表对象?或者可能重命名它们?

跑步:

DROP TABLE [REF].[Work_xxyyzz]
Run Code Online (Sandbox Code Playgroud)

给出:

消息 12332,级别 16,状态 111,第 1 行
内存优化表不支持 DDL 语句 CREATE、ALTER 和 DROP 上的数据库和服务器触发器。

我的内存表上没有用户触发器或事件。5 个带主键的简单表。

这些表没有依赖关系或引用。它们就像临时表,我们将它们命名为Work_xxxyyzz表。但是,它们确实属于数据库模式。

我可以暂时保留文件组。我想删除这些表以创建同名的默认对象。

sql-server memory-optimized-tables drop-table sql-server-2016

4
推荐指数
2
解决办法
4825
查看次数

内存 OLTP 数据库在启动期间需要很长时间才能恢复

我们在 Windows 上使用 SQL Server 2019,并在某些数据库上激活了内存中 oltp。服务器重新启动/服务重新启动后,内存数据库需要很长时间才能可用(超过一个小时),即使大多数表不持久。内存优化对象的大小非常小:10 MB

我们看到主数据库上有一个等待类型为(110514580ms)WAIT_XTP_RECOVERY的后台会话,并且几乎没有读取。CPU 核心利用率为 100%。磁盘闲置。

我们对此数据库使用透明数据加密(TDE)。该数据库使用同义词来访问同一实例上的另一个数据库。它使用服务代理。实例在数据库上设置了事务复制,但未激活内存。

添加 CPU 使其速度更快。这是一台低端机器,但并不垃圾。XTP 引擎 2.11。

知道发生了什么事吗?

sql-server in-memory-database memory-optimized-tables

4
推荐指数
1
解决办法
412
查看次数

使用内存 OLTP 进行数据压缩

将已经data compression启用减少存储在内存中的OLTP表使用的金额是多少?

如果是,我认为 CPU 工作负载会增加。

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

3
推荐指数
1
解决办法
660
查看次数

在内存表中使用 ddl 触发器

我创建了服务器范围 ddl 触发器来审核服务器上的用户活动。
现在,如果有人尝试创建内存表,该语句将失败并显示以下错误:

Error SQL72014: .Net SqlClient Data Provider: Msg 12332, Level 16, State 107,
Line 1 Database and server triggers on DDL statements DROP and CREATE are not
supported with memory optimized tables.
Run Code Online (Sandbox Code Playgroud)

我可以创建 ddl 触发器来忽略对内存表的操作吗?

sql-server in-memory-database sql-server-2014 memory-optimized-tables

3
推荐指数
1
解决办法
2144
查看次数

存储在行外数据表中的内存优化表的条件

内存优化表将 LOB 类型存储在内部表中。

我有一个没有显式 LOB 类型的表,但是当我对sys.memory_optimized_tables_internal_attributes运行查询时,我看到列出的 varchar(255) 列的 type_desc 值为INTERNAL OFF-ROW DATA TABLE。

SET ANSI_NULLS ON;
GO

SET QUOTED_IDENTIFIER ON;
GO

SET ANSI_PADDING ON;
GO

CREATE TABLE dbo.DERP
(
    RECORD_KEY numeric(30, 0) NOT NULL
,   COL_1 bigint NOT NULL
,   COL_2 datetime2(0) NOT NULL
,   COL_3 datetime2(0) NOT NULL
,   COL_4 varchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,   COL_5 varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,   COL_6 varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,   COL_7 date NULL
,   COL_8 bigint NULL
, …
Run Code Online (Sandbox Code Playgroud)

sql-server memory-optimized-tables sql-server-2016

3
推荐指数
1
解决办法
672
查看次数

索引:普通表 vs 内存优化

如果两个表具有相同的架构,但一个是“正常”的,另一个是内存优化的,如果我研究索引应该如何用于“正常”,我可以对内存优化表进行直接推断吗?

找不到任何结论性的东西,所以我非常感谢链接、主题等。

sql-server index-tuning memory-optimized-tables

3
推荐指数
1
解决办法
169
查看次数

SQL Server 2017 日志文件增长与内存优化表

我开始使用内存优化表,我遇到的问题是日志文件也随着数据库置于简单模式而增长。

在我的维护计划中,我检查点并缩小,但仍然存在问题。如果我将表恢复到普通磁盘表,一切看起来都很好。

有人知道原因吗?

数据库LOG_REUSE_WAIT_DESC在sys.databases.

所有的 mem opt 表都在 SCHEMA_ONLY 模式中,但仍然是完整的日志记录。

SQL Server 2017 版本 14.0.3037

我还在 SQL Server 错误日志中看到这些消息:

spid38s,Unknown,[INFO] 数据库 ID:[5]。删除不可恢复的检查点表行 (id: 669)
spid102,Unknown,[INFO] HkHostFreezeCkptTrimming()。数据库 ID:[5]。HkTrimLSN 冻结:1
spid102,未知,[信息] getMaxUnrecoverableCheckpointId()。数据库 ID:[5]。日志 LSN 开始:00001714:000004E0:0002 用于在完整备份期间修剪不可恢复的检查点文件表

内存优化表的大小情况: 内存优化表

基于磁盘的表的大小情况: 基于磁盘的表

sql-server transaction-log memory-optimized-tables sql-server-2017

3
推荐指数
1
解决办法
883
查看次数

3
推荐指数
1
解决办法
1840
查看次数

SQL Server 2016 是否支持来自磁盘绑定表的内存表中的外键

如果在 SQL Server 2016 中使用内存表,我可以将该表中的列定义为来自非内存(或磁盘绑定)表的外键吗?我知道外键确实需要是引用表的主键。

我只是想知道内存表的局限性和可靠性,以及它们与 SQL Server 2016 中的磁盘绑定表的配合情况。

sql-server memory-optimized-tables

2
推荐指数
1
解决办法
1090
查看次数

在不同的文件组上创建表分区,这是内存优化文件组的第一个边界

我们所有交易的 99% 都是针对最近一周的数据,一个 WEEK_SELECTOR 列描述了哪一周被描述。按周对我们的 10 亿+ 行表进行分区将是有益的,如果最近一周的 50 万左右行位于内存分区中,则更是如此。

在尝试将前一周拆分到我们的内存优化文件组时

CREATE PARTITION FUNCTION [TPF](int) AS RANGE RIGHT FOR VALUES (N'1700114')
CREATE PARTITION SCHEME [TPS] AS PARTITION [TPF] TO ([PRIMARY], [memtest])
Run Code Online (Sandbox Code Playgroud)

我们收到以下错误:

Msg 7737, Level 16, State 1, Line 2
Filegroup memtest is of a different filegroup type than the first filegroup in partition scheme TPS
Run Code Online (Sandbox Code Playgroud)

我们现在假设分区的文件组必须是相同类型的,我们的计划是不可能的,但找不到文档说这是不可能的。

有人可以解释如何做到这一点,或者如果没有,请提供一个链接来说明?谢谢。

sql-server partitioning memory-optimized-tables sql-server-2016

2
推荐指数
1
解决办法
434
查看次数