Questions tagged «memory-optimized-tables»

4
由于“ XTP_CHECKPOINT”,数据库“ database_name”的事务日志已满
我有一个问题XTP_CHECKPOINT。 我正在使用SQL Server2014。我有一个处于简单恢复模型模式的数据库。它也在被复制。 没有公开交易。我已经跑了DBCC OPENTRAN,它返回: “没有活跃的公开交易。” 但是,每当我尝试创建或删除表或删除数据时,我都会不断收到此消息:( 我用单词替换了实际的数据库名称database_name) “由于'XTP_CHECKPOINT',数据库'database_name'的事务日志已满” 有谁知道为什么会发生这种情况,更重要的是,我如何才能阻止这种情况发生? 是的,数据库确实处于SIMPLE恢复模型模式。即,事务日志应自动截断。 顺便说一句,我处于完全恢复模式的另一个数据库做了同样的事情,开始返回同样的错误: 由于“ XTP_CHECKPOINT”,数据库“ database_name”的事务日志已满 我试图将日志增长设置更改为无限制增长,但它不允许我返回相同的错误。 除了文件组之外,我完全不需要任何XTP东西就可以重现该问题。方法如下:http : //pastebin.com/jWSiEU9U

4
内存优化表-它们真的很难维护吗?
我正在研究从MS SQL 2012升级到2014的好处。SQL2014的最大卖点之一是内存优化表,该表显然使查询超快。 我发现在内存优化表上有一些限制,例如: 没有(max)大小字段 每行最大〜1KB 没有timestamp领域 没有计算列 无UNIQUE约束 这些都是令人讨厌的东西,但是如果我真的想解决这些问题以获得性能上的好处,我可以制定一个计划。 真正的缺点是您不能运行一条ALTER TABLE语句,并且每次将一个字段添加到索引列表中时,都必须经过这个严格INCLUDE的规定。此外,似乎必须将用户拒之于系统之外,以便对实时DB上的MO表进行任何模式更改。 我发现这完全是令人发指的,以至于我实际上无法相信Microsoft可以在此功能上投入这么多的开发资金,而使它的维护非常不切实际。这使我得出一个结论,就是我一定弄错了方向。我一定对内存优化表有误解,这使我相信维护它们的难度要比实际困难得多。 那么,我误会了什么?您是否使用过MO表?是否有某种秘密的开关或过程使它们易于使用和维护?


1
内存表的性能比基于磁盘的表差
我在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) ) (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 …

1
内存优化的DLL不会被删除
从BOL,我的理解是DBA不需要管理为内存优化表或本机编译的存储过程创建的DLL,因为它们在SQL Server服务启动时会自动重新编译,而在不再需要时会被删除。但是我正在见证,即使在删除内存优化表并重新启动服务之后,这些DLL仍然存在于文件系统中,并且仍会加载到SQL内存中并附加到进程中。这可以通过以下事实证明:它们仍然在sys_dm_os_loaded_modules中可见,并且如果您尝试在运行SQL Service的同时将其删除,则它们将锁定在文件系统中。 这是一个错误吗?还是稍后再清理?如果以后没有启动实例,那么是什么触发清除工作?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.