问题标签 [transactions]

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 投票
1 回答
283 浏览

python - Redland 的 Python 绑定中的存储事务?

我目前浏览了 Redland 的 Python 绑定,但还没有找到一种干净的方法来通过它在存储引擎上进行事务。我在低级 Redland 模块中发现了一些模型事务:

这些是否也转化为存储层?

谢谢 :-)

0 投票
5 回答
2151 浏览

performance - 如何最小化 Oracle 中的事务开销?

我必须同时将数据加载到表中并对其运行查询。由于数据性质,我可以用完整性换取性能。我怎样才能最大限度地减少交易的开销?

不幸的是,不能使用 MySQL 之类的替代方案(由于非技术原因)。

0 投票
2 回答
12596 浏览

sql-server - 如何以编程方式在 SQL Server 中启用 READ COMMITTED SNAPSHOT?

我需要在 SQL Server 中以编程方式启用 READ COMMITTED SNAPSHOT。我怎样才能做到这一点?

0 投票
8 回答
14066 浏览

mysql - mysql插入竞争条件

如何在 MySQL 中停止竞争条件?手头的问题是由一个简单的算法引起的:

  1. 从表中选择一行
  2. 如果不存在,则插入

然后要么你得到一个重复的行,要么你通过唯一/主键阻止它,一个错误。

现在通常我认为事务在这里有帮助,但由于该行不存在,事务实际上并没有帮助(或者我错过了什么?)。

LOCK TABLE 听起来有点矫枉过正,尤其是在表每秒更新多次的情况下。

我能想到的唯一其他解决方案是 GET_LOCK() 用于每个不同的 id,但没有更好的方法吗?这里也没有可扩展性问题吗?而且,对每个表都这样做听起来有点不自然,因为对我来说这听起来像是高并发数据库中非常常见的问题。

0 投票
4 回答
308 浏览

search - 存储和搜索对象事务的最佳方式是什么?

我们有一个体面的面向对象的应用程序。每当应用程序中的对象发生更改时,对象更改都会保存回数据库。然而,这已经变得不太理想了。

目前,交易被存储为一个交易和一组交易LI。

事务表具有 who、what、when、why、foreignKey 和 foreignTable 字段。前四个是不言自明的。ForeignKey 和 foreignTable 用于确定哪个对象发生了变化。

TransactionLI 具有时间戳、密钥、val、oldVal 和 transactionID。这基本上是一个键/值/旧值存储系统。

问题是这两个表用于应用程序中的每个对象,所以它们现在是相当大的表。将它们用于任何事情都很慢。索引只有这么多帮助。

所以我们正在考虑其他方法来做这样的事情。到目前为止我们已经考虑过的事情: - 按时间戳之类的方式对这些表进行分片。- 对两张表进行非规范化并将它们合并为一张。- 以上两者的结合。- 在更改后序列化每个对象并将其存储在颠覆中。- 可能是别的什么,但我现在想不起来。

整个问题是我们希望有一些机制来正确存储和搜索事务数据。是的,您可以强制将其输入关系数据库,但实际上,它是事务数据,应该相应地存储。

其他人都在做什么?

0 投票
1 回答
1479 浏览

oracle - 从 ADO.NET 使用并涉及触发器时的 Oracle 事务范围?

有人告诉我,当从 ADO.net 调用 Oracle 时,当在循环中调用多个插入时,每个插入都会触发一个触发器,该触发器在其 PL-Sql 中包含一个 Commit 语句,因此无法停止该提交实际提交事务。

即,我希望我的 ADO.Net 代码在循环开始之前开始一个事务,并且当循环退出时,仅当且仅当循环中的每个插入都成功时才提交所有插入。我的消息来源告诉我 Oracle 的工作方式,如果这些触发器包括 COMmit 语句,那么这是不可能的..

由于这似乎是一个非常普遍的要求,而且我知道它在 SQL Server 中是可能的,所以这对我来说似乎不正确。

它是否正确?

0 投票
7 回答
22565 浏览

.net - 为什么,当我在 WCF 服务中模拟时,当我尝试运行 LINQ to SQL 查询时,我的服务不能加载 System.Transactions?

我有一个 WCF 服务,托管在 IIS 7.0 中,需要运行数据库查询。为了获得执行此操作的正确权限,我在服务中模拟如下:

代码

配置

当我尝试连接并运行我的查询时,我得到以下信息:

0 投票
1 回答
729 浏览

.net - RIA 服务器架构 .NET

我使用 WebORB 作为Flex项目的远程网关。我想知道在 Server .NET 端使用的最佳架构是什么。此时我们正在使用SubSonic生成数据访问层。除此之外,来自 Flex 的每个调用都使用了一点事务脚本模式,因为服务器端实际上只是将数据从SQL Server 2005数据库获取到 Flex 以及从 Flex 到 SQL Server 2005 的一种方式。

是否有关于如何在服务器端处理RIA的最佳实践?我一直在玩LINQ(具有多个结果集的存储过程让我们头疼),我想知道ADO.NET 实体框架......

并发也是一个大问题。我知道这些事情是由数据集处理的,LINQ 也对此提供支持,但是一旦将数据发送到 Flex,就真的不再与原始数据集有任何联系。

还有其他人有大型 RIA 的经验吗?

0 投票
8 回答
34498 浏览

.net - 即使有事务回滚,SQL 标识(自动编号)也会增加

我有一个带有 SQL 插入到 SQL Server 2005 数据库的 .net 事务。该表具有标识主键。

当事务中发生错误时,Rollback()调用。行插入正确回滚,但是下次我将数据插入表时,标识会增加,就好像回滚从未发生过一样。所以本质上在身份序列中存在差距。有没有办法让该Rollback()方法恢复丢失的身份?

我不是以正确的方式接近这个吗?

0 投票
3 回答
1880 浏览

sql-server - 事务级别、nolock/readpast 和并发

我们有一个系统,从多个站点同时插入大量数据,同时还暴露了一个数据查询接口。架构看起来像这样(抱歉格式不好):

数据插入是在“同步”中完成的,就像这样(我们只将数据插入系统,我们从不更新)

查询是这样的(对于给定的站点,测量时间和数据类型)

我的问题是我们如何结合插入的事务级别和查询的 NOLOCK/READPAST 提示,以便:

  1. 我们在支持插入的同时最大化系统中的并发性(我们需要存储大量数据,每秒高达 2000 多条记录)
  2. 查询仅从“已提交”同步返回数据(我们不希望结果集包含半插入同步或由于锁跳过而包含一些跳过条目的同步)
  3. 我们不关心查询中是否包含“最新”数据,我们更关心一致性和响应能力,而不是“实时”和最新数据

这可能是非常矛盾的目标,并且可能需要高事务隔离级别,但我对所有技巧和优化感兴趣,以实现对插入和选择的高响应性。如果需要更多细节来消除更多调整和技巧,我将很乐意详细说明。

更新:只需为将来的回复添加更多信息。我们在最初具有 5+ TB 存储的 SAN 网络上运行 SQL Server 2005(可能在 6 个月内 2008)。我不确定 SAn 设置了哪种 RAID,以及我们有多少磁盘可用。