问题标签 [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.
sql-server - Sql Server 2014 的“Hekaton”编译存储过程是否解决了参数嗅探问题?
SQL Server 2014 的“Hekaton”内存表优化宣称,“存储过程中业务逻辑的本机编译”。然而,由于 SQL Server 2012 及更早版本中的“参数嗅探”(请参阅此处和此处)存在问题,我一直被迫使用OPTIMIZE FOR UNKNOWN
(或其等效项)设计大部分存储过程。这有效地防止了查询计划被缓存,并强制 SQL Server 在每次运行时重新编译/重新优化查询。Hekaton 的大部分性能提升来自于本机编译查询的重用,SQL Server 2014 是否可以解决参数嗅探问题,以便我可以实际使用编译查询?
sql - 内存中,16 倍的性能提升?
我试图理解内存中......
我得到了 CTP1 并尝试了 In-Memory。白皮书描述了内存表的语法。我写了一些查询来找出性能提升。
具有 100 万个条目的普通表与内存优化表所需的时间相同?
只有插入、删除和更新要快得多……
我也尝试过使用 native_compilation 程序,但不是同一时间。
如何通过查询达到更低的延迟?查询看起来如何通过 select 获得性能?
此表填充了 1 个 Mio 条目。还有一张普通的桌子
这张桌子也是。
使用第一个表选择与第二个表相同的时间。用设置统计时间测量它。
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) 之类的表提示为内存优化表提供支持的隔离级别。
distributed - 内存优化表不支持分布式查询和多个活动结果集 (MARS)
我有以下查询(作为存储过程),我喜欢从针对 SQL server 2014 的应用程序(由 C# 编写)触发它,我还应该提到 dbo.tbl_vwPlanningSalesProc 是一个内存优化表!
- 顺便说一句,我已经在我的连接字符串中禁用了“多个活动结果集(MARS)”!
问题:当我从 management studio 2014 触发查询时,我可以设置我期望得到的结果,但是当我从应用程序(由 C# 和 .Net 4.5.1 编写)触发完全相同的查询时,我得到以下错误:
内存优化表不支持分布式查询和多个活动结果集 (MARS)。
查询:
tsql - SQL Server 2014 内存优化表类型
刚刚安装了 SQL Server 2014。
直接来自文档的语法失败。
这失败了Sales
:
但如果我删除Sales
它仍然失败
出现以下错误
消息 8135,级别 16,状态 0,行 10
表级别约束未指定列列表,表 'SalesOrderDetailType_inmem'。
如何创建内存优化表类型?
sql-server-2014 - 创建内存优化表失败,但它仍然创建了我无法删除的内容
第一条语句失败,不能使用 asc
但是当我修复创建时出现错误 [FTSindexMO] 存在
消息 2714,级别 16,状态 5,第 74 行
数据库中已经有一个名为“FTSindexMO”的对象。
消息 1750,级别 16,状态 0,第 74 行
无法创建约束或索引。请参阅以前的错误。
但我不能删除数据库
消息 3701,级别 11,状态 5,第 72 行
无法删除表“Gabe2a_ENRONb.dbo.FTSindexMO”,因为它不存在或您没有权限。
该名称不在 sysObjects 中
该表名未显示在 SSMS 中(我确实刷新了)
如果我用正确的语法创建另一个表,那么我可以删除它
有趣的是,如果我两次使用正确的语法,错误消息不一样
它不包括约束错误
前段时间我遇到了一个问题,常规表损坏了,我可以从查看对象资源管理器详细信息中删除它,但是这个表也没有列出
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 作为主键似乎已修复它
最后注意我回到旧的基于磁盘的表
在应用程序使用的实际查询内存优化较慢优化
的内存加载速度更快,但该表是一次写入和多次读取
sql-server - SQL Server 2014 中内存优化表的列存储索引
我们可以在 SQL Server 2014 中的内存优化表上创建聚集/非聚集列存储索引吗?
sql-server - SQL Server 2014 内存中 OLTP 与 Redis
SQL Server 2014 的 In-Memory OLTP (Hekaton) 与Redis的概念是否相同或相似?
我使用 Redis 进行内存存储(存储在 RAM 中)和缓存,同时拥有一个单独的 SQL Server 数据库(就像 StackExchange 一样)。赫卡顿可以做同样的事情吗?
sql-server - Columnstore 与 Hekaton 性能
- 哪种技术可以更快地将数据批量上传到空数据库表?
- 哪种技术对非空数据库表的数据插入/更新更快?
- 从非空数据库表中读取数据时,哪种技术更快?