问题标签 [in-memory-oltp]
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-2014 - 使用内存中 OLTP 表而不是临时表
SQL Server 2014
介绍了一个看起来很棒的功能:In-Memory OLTP(In-Memory Optimization)。它让我想起了MySQL's
MEMORY Storage Engine,我在几年前尝试过并获得了更好的性能。
我知道已经有人问过了,但我对更有针对性的场景感兴趣:
一些SSRS
报告使用大型存储过程,出于性能原因(对于具有大量连接、分组等的查询,执行计划非常丑陋和缓慢),通过使用临时表来保存部分结果来拆分逻辑。
由于临时表是写入磁盘的,所以我预计在处理大量数据(数万甚至数十万行)时会对性能产生影响。
在这种情况下使用In-Memory OLTP tables
有意义吗?我正在考虑以下优点和缺点。
优点:
- 应该明显更快,因为所有数据都存储在内存中
缺点:
- 需要明确的会话分离(表应包含某种会话标识符,以免混合来自各种
SPID
s 的数据) - 需要明确的数据清理以避免内存不足(与退出声明范围后自动删除的临时表相反)
- 需要注意表中存储的数据量
sql-server - SQL Server 2014 内存中 oltp 内存不足
我们正在尝试将表从 SQL Server Parallel DW APS 加载到内存中 OLTP SQL Server 2014 企业版。正如我们所知,我们有 256 GB 内存大小的限制,目标服务器上的总内存为 500 GB。DBA 为我们的操作分配了 90% 的内存,而我们只能使用 256Gb。源表大小为 30GB(1.92 亿条记录,320 列)。每次我们尝试增加目标上的内存时,我们仍然会不断出错:
资源池“默认”中的系统内存不足,无法运行此查询
内存DB的磁盘空间为1TB。还有其他 10Gb 的表能够适应。正在使用 SSIS Visual Studio 2013 将表加载到内存中。Oledb 源,Oledb 目标(未选中框,每批 5000 行,最大提交大小 214748),网络数据包大小2000 连接管理器。无法检查表锁,因为它并非全部用于内存中的 oltp 表。
目标表具有持久性 SCHEMA_AND_DATA。每次我们得到上述错误。我们在内存表中删除并重新创建目标,并确保在加载之前行数为 0。我们如何在 2014 年克服这个错误,我们能否在 SQL Server 2016 中做到这一点?我们必须为内存操作分配两倍大小的源表。
c# - 在内存中 OLTP 表在 SQL Server 2016 Management Studio 对象资源管理器中不可见
我正在使用 SQL Server 2016 来了解内存中 OLTP 表。
我创建了一个数据库mydatabase
,然后在其上运行 alter 命令来创建一个文件组:
要在该组上创建容器:-
这些命令执行成功,然后我在这个数据库中创建了内存优化的持久表和非持久表;mytable_durable
并mytable_non_durable
成功创建。
现在我想在 SQL Server 2016 的对象资源管理器中查看这两个表。它们在我的mydatabase > Tables
节点下的数据库中不可见。我怎么能看到他们?请参阅随附的屏幕截图。
但是如果我运行这个
我可以看到两张桌子。请看下面的截图。
有什么方法可以在对象资源管理器中看到它们吗?或者这是默认行为?
sql-server - 使用多个连接加速 SQL 查询
我有一个运行中型 SQL Server express 数据库的 .NET 电子商务解决方案。系统查询涉及许多连接(可能有 20 个表)的订单数据,这非常慢,特别是在大量使用期间,我想我已经用尽了索引表和优化查询的选项。
我现在相信最好的选择是非规范化 - 请参阅https://msdn.microsoft.com/en-us/library/cc505841.aspx
我想知道的是:
- SQL Server 列存储索引会是更好的选择吗?
- 我正在考虑在非规范化表上使用内存中 OLTP,因为内存中的数据无疑会使查询更快,但它似乎不是预期的用途,我应该这样做吗?
- 我应该改用 ElasticSearch 之类的东西吗?与 SQL Server 内存中 OLTP 相比有什么好处?
- 我应该改用 SQL Server OLAP 吗?好像有点矫枉过正...
sql-server-2016 - 内存中 OLTP SQL Server 2016 中的写入-写入冲突
我们为我们的数据库使用了内存中 OLTP 功能。当我们运行事务时,我们遇到了以下问题。
SqlException: 当前事务试图更新自该事务启动以来已更新的记录。交易被中止
这个问题是由于写-写冲突引起的,MS 建议在 TRY CATCH 中使用 RETRY 逻辑。但这也对我们没有多大帮助,因为错误的频率仍然更高。如果有人除了 RETRY 逻辑之外还有其他可能的解决方案,那将有很大的帮助。
sql-server - SQL Server 内存优化表检测并发冲突
在 SQL Server 内存优化表中,rowversion
不允许使用该数据类型。
在我的应用程序中,我仍然希望能够检测到并发冲突,其中用户 A 打开一个项目进行编辑,用户 B 打开同一个项目,用户 A 保存并且用户 B 保存而没有看到用户 A 的更改。多年来,我一直rowversion
为此使用一个专栏。管理我自己的假rowversion
专栏有什么建议?
sql-server - SQL Server 内存中 OLTP (Hekaton) 中的动态更新或等效脚本
我想在本机编译的存储过程中编写等效的存储过程(包含执行字符串),但我找不到实现它的方法。
有人有想法吗?
sql-server - 比较内存与磁盘表的 SQL Server 性能
我想检测将表迁移为内存表后的性能改进。
有什么方法/工具可以帮助我做到这一点吗?