问题标签 [memory-optimized-tables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
745 浏览

sql-server - Sql Server 2014 的“Hekaton”编译存储过程是否解决了参数嗅探问题?

SQL Server 2014 的“Hekaton”内存表优化宣称,“存储过程中业务逻辑的本机编译”。然而,由于 SQL Server 2012 及更早版本中的“参数嗅探”(请参阅​​此处此处)存在问题,我一直被迫使用OPTIMIZE FOR UNKNOWN(或其等效项)设计大部分存储过程。这有效地防止了查询计划被缓存,并强制 SQL Server 在每次运行时重新编译/重新优化查询。Hekaton 的大部分性能提升来自于本机编译查询的重用,SQL Server 2014 是否可以解决参数嗅探问题,以便我可以实际使用编译查询?

0 投票
3 回答
793 浏览

sql - 内存中,16 倍的性能提升?

我试图理解内存中......

我得到了 CTP1 并尝试了 In-Memory。白皮书描述了内存表的语法。我写了一些查询来找出性能提升。

具有 100 万个条目的普通表与内存优化表所需的时间相同?

只有插入、删除和更新要快得多……

我也尝试过使用 native_compilation 程序,但不是同一时间。

如何通过查询达到更低的延迟?查询看起来如何通过 select 获得性能?

此表填充了 1 个 Mio 条目。还有一张普通的桌子

这张桌子也是。

使用第一个表选择与第二个表相同的时间。用设置统计时间测量它。

0 投票
2 回答
4631 浏览

sql-server - 内存中用户定义的表,不在内存中?

我正在使用 SQL Server 2014 CTP2,READ_COMMITTED_SNAPSHOT ON(我认为这对这个问题很重要)。

我创建了一个 In-Memory 表类型(与 technet 博客SQL Server 2014 In Memory OLTP: Memory-Optimized Table Types and Table Variables的示例非常相似),并且我有几个 In-Memory 表。

在查询本身中,我在常规 In-Memory 表和 In-Memory 表类型之间建立了连接,充当过滤器,当我执行查询时,我收到以下错误消息:“使用 READ 访问内存优化表的查询COMMITTED 隔离级别,当数据库选项 READ_COMMITTED_SNAPSHOT 设置为 ON 时无法访问基于磁盘的表。使用表提示为内存优化表提供支持的隔离级别,例如 WITH (SNAPSHOT)。

我在写这个问题时删除了 READ_COMMITTED_SNAPSHOT ON,但问题仍然存在,如果我创建了一个内存数据类型,并且这个特定类型将“永远不会溢出到磁盘”,正如博客所说,为什么服务器将其“视为”“磁盘表”?

为了解决问题,我尝试仅使用 In-Mem 表进行联接,并且它可以工作,只要表类型进入我就得到了错误。

更新:当我删除 READ_COMMITTED_SNAPSHOT(现在它已关闭)时,查询有效,但现在我失去了多版本/无锁/速度,我想听听另一种解决方案。

谢谢

重现步骤。

创建具有内存优化文件组的数据库

创建一些对象

以下工作没有错误

但是这个

给出上面详述的错误

消息 41359,级别 16,状态 0,过程 P,第 62 行 当数据库选项 READ_COMMITTED_SNAPSHOT 设置为 ON 时,使用 READ COMMITTED 隔离级别访问内存优化表的查询无法访问基于磁盘的表。使用诸如 WITH (SNAPSHOT) 之类的表提示为内存优化表提供支持的隔离级别。

0 投票
1 回答
1455 浏览

distributed - 内存优化表不支持分布式查询和多个活动结果集 (MARS)

我有以下查询(作为存储过程),我喜欢从针对 SQL server 2014 的应用程序(由 C# 编写)触发它,我还应该提到 dbo.tbl_vwPlanningSalesProc 是一个内存优化表!

  • 顺便说一句,我已经在我的连接字符串中禁用了“多个活动结果集(MARS)”!

问题:当我从 management studio 2014 触发查询时,我可以设置我期望得到的结果,但是当我从应用程序(由 C# 和 .Net 4.5.1 编写)触发完全相同的查询时,我得到以下错误:


内存优化表不支持分布式查询和多个活动结果集 (MARS)。


查询:

0 投票
1 回答
637 浏览

tsql - SQL Server 2014 内存优化表类型

刚刚安装了 SQL Server 2014。

直接来自文档的语法失败。

这失败了Sales

但如果我删除Sales它仍然失败

出现以下错误

消息 8135,级别 16,状态 0,行 10
表级别约束未指定列列表,表 'SalesOrderDetailType_inmem'。

如何创建内存优化表类型?

0 投票
1 回答
381 浏览

sql-server-2014 - 创建内存优化表失败,但它仍然创建了我无法删除的内容

第一条语句失败,不能使用 asc

但是当我修复创建时出现错误 [FTSindexMO] 存在

消息 2714,级别 16,状态 5,第 74 行
数据库中已经有一个名为“FTSindexMO”的对象。
消息 1750,级别 16,状态 0,第 74 行
无法创建约束或索引。请参阅以前的错误。

但我不能删除数据库

消息 3701,级别 11,状态 5,第 72 行
无法删除表“Gabe2a_ENRONb.dbo.FTSindexMO”,因为它不存在或您没有权限。

该名称不在 sysObjects 中

该表名未显示在 SSMS 中(我确实刷新了)

如果我用正确的语法创建另一个表,那么我可以删除它

有趣的是,如果我两次使用正确的语法,错误消息不一样
它不包括约束错误

前段时间我遇到了一个问题,常规表损坏了,我可以从查看对象资源管理器详细信息中删除它,但是这个表也没有列出

0 投票
1 回答
839 浏览

tsql - 内存优化表具有一些可怕的响应时间

用内存优化表替换了一个大表
对于某些东西,我对一些它死掉的东西有很好的响应时间
这是一个复合主键
我可以让它使用主键的唯一方法是搜索特定的行(整个 PK)
不会使用 PK 进行排序或仅使用复合键的一个组件
从现有数据中调整哈希桶的大小

将此链接中的语法用于复合主键
Hekaton: Composite Primary Key in create table statement
CREATE TABLE (SQL Server)

注意原始(非内存优化表)
所有这些查询都在 0 秒内运行
我并不是说每个
都在 0 秒内运行

我认为这总结了我的问题
Troubleshooting Common Performance Problems with Memory-Optimized Hash Indexes

不使用 HASH 作为主键似乎已修复它

最后注意我回到旧的基于磁盘的表
在应用程序使用的实际查询内存优化较慢优化
的内存加载速度更快,但该表是一次写入和多次读取

0 投票
3 回答
732 浏览

sql-server - SQL Server 2014 中内存优化表的列存储索引

我们可以在 SQL Server 2014 中的内存优化表上创建聚集/非聚集列存储索引吗?

0 投票
2 回答
7396 浏览

sql-server - SQL Server 2014 内存中 OLTP 与 Redis

SQL Server 2014 的 In-Memory OLTP (Hekaton) 与Redis的概念是否相同或相似?

我使用 Redis 进行内存存储(存储在 RAM 中)和缓存,同时拥有一个单独的 SQL Server 数据库(就像 StackExchange 一样)。赫卡顿可以做同样的事情吗?

0 投票
2 回答
251 浏览

sql-server - Columnstore 与 Hekaton 性能

  1. 哪种技术可以更快地将数据批量上传到空数据库表?
  2. 哪种技术对非空数据库表的数据插入/更新更快?
  3. 从非空数据库表中读取数据时,哪种技术更快?