问题标签 [database-deadlocks]
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.
mysql - Mysql死锁检测
MySQL是否总是自动检测死锁?或者在某些情况下 MySQL 无法确定它正在处理死锁?
postgresql - 运行 UPDATE 时 PostgreSQL 中的死锁
我对 PostgreSQL 死锁的阅读有点困惑。
一个典型的死锁例子是:
但是,如果我将代码更改如下:
这里会有死锁的可能吗?
本质上我的问题是:在第二种情况下,PostgreSQL 是一个接一个地锁定行,还是锁定条件覆盖的整个范围WHERE
?
提前致谢!
sql - SqlServer:- 插入和查看数据时出现死锁和锁定问题
我有一个页面,在该页面中,我在另一个用户请求查看的同一时间点通过过程将值插入到 3 个表中。但是发生了DeadLock的错误。
而且我的插入过程也变慢了。比如 50 个用户在该表中并行插入数据,并且 15 个用户请求查看该数据。
我在所有三个表中都有 CusterIndex 和 Non ClusterIndex。其中启用了页级锁定和行级锁定。禁用它们会帮助我吗?
只有在进行查看或插入时,它才能正常工作。但是当同时过程开始加息时。它会触发“超时错误”或“死锁受害者”以供查看。并且锁越来越多,并且等待时间开始为 0.1< 分钟,然后逐渐增加。
提前致谢
tsql - 如何防止在此 SQL 中发生死锁
首先,我不需要 100% 防止死锁,但我能做的任何事情来减少它们都会很好。
我有两张桌子Source
和Dest
. Source 中有许多唯一值,我需要从中请求一个新值,Source
并在这样做时将其移动到Dest
.
我有以下sql:
当多个用户获得同一value
行时,这偶尔会引发死锁。我该如何预防/减少这种情况?
我正在使用 SQL Server 2008
顺便说一句,还有其他列Source
,Dest
我正在阅读/写入。为了简洁起见,这是一个简化。
谢谢
sql-server-2005 - 如何消除 SQL Server 2005 中的死锁?
首先,我想知道 SQL Server 2005 中死锁的实际根本原因是什么。是因为当两个进程访问表中的同一行时?
无论如何,请考虑两个表_Table_Now_
,并且_Table_History_
两者都具有相同的结构。
假设有一列称为NAME
。
因此,当一个进程尝试使用 in 更新记录时NAME='BLUE'
,_Table_Now_
首先,它需要将当前行NAME='BLUE'
放入_Table_History_
然后更新
_Table_Now_
,并删除以前存在的行_Table_History_
。
删除时发生死锁。我不明白为什么?
请指导我!
sql-server - TDataSetProvider 和死锁
您能否列出 TDataSetProviders 中死锁的条件是什么?
我们得到了复杂的代码,并且死锁诅咒主要在桌子上的循环上。
更糟糕的是,我在 IDE 中调试时无法重现死锁,只能在午餐时重现。
你能提示在哪里看吗?
java - “(!Oracle.acquireLockNoWait)”的用法
我想知道“!Oracle.acquireLockNoWait”的确切功能,实际上这是一种调用 cron 作业的方法,但由于某种原因,我找不到正在运行的作业。所以只是想检查这段代码是否会导致阻塞或死锁。
我收到错误“正在处理另一个会话:”,这可能是什么原因?
sql-server-2005 - 为什么我不能在不锁定 SQL Server 2005 中的整个表的情况下插入/更新数据?
我正在尝试在 SQL Server 表中插入/更新行(取决于它是否存在)。我正在多台机器上从多个线程执行 SQL,我想避免出现重复的键错误。
我在网上找到了很多解决方案,但它们都导致事务死锁。这是我一直在使用的一般模式:
我试过了:
WITH XLOCK
代替UPDLOCK
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
一开始是UPDLOCK
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
并且没有表格提示
我还尝试了以下所有组合的模式:
我可以让它在没有死锁的情况下工作的唯一方法是使用WITH (TABLOCKX)
.
我使用的是 SQL Server 2005,SQL 是在运行时生成的,因此它不在存储过程中,并且一些表使用复合键而不是主键,但我可以在具有整数主键的表上重现它。
服务器日志如下所示:
模式明显不同,具体取决于使用的表提示(但进程总是在等待它们已经拥有的模式)。我见过 RangeS-U、RangeX-X 和 U。
我究竟做错了什么?
database-deadlocks - SQL 死锁 在存储过程中插入更新语句
我有一个非常基本的表格,名为 Titles,如下所示,
只有一个索引是 TitleID 上的 PK Clustered Index
现在我通过 ReadCommitted 事务中的存储过程在该表中插入记录,
此存储过程将记录插入到 IsPrimary = 1 的表中,并将所有其他标题更新为 0
当我在多用户场景中测试这个时,我遇到了死锁问题。如果我从存储过程中删除 UPDATE 命令,那么一切都很好......
我尝试在查找列上创建非聚集索引,并在更新语句中尝试了 WITH (ROWLOCK) 提示,但似乎没有任何效果。
当我运行 sql 语句并查看估计的执行计划时,我可以看到都更新了聚集索引,我认为这是在多用户场景中失败的地方......
我相信这是一个相当简单的场景,很多人应该在高事务系统中实现这种行为,但我找不到任何关于如何处理/解决这个问题的信息,我们将不胜感激。
谢谢你。
oracle - 来自 weblogic 事务的死锁 oracle rac
最近我的数据库中的一个表被锁定。我正在使用 Oracle RAC,发送到数据库的事务由 weblogic 10.3.0 管理。我已经配置了多个数据源,并且我的事务启用了“支持全局事务”和“单阶段提交”选项。在该表被锁定后,我不知道为什么 weblogic 不终止此事务,我的问题是:
1 - ORACLE RAC 根据我的连接池配置锁定表的可能原因是什么?
2 - 为什么 weblogic 在超时后没有终止事务(对于这种情况,我将超时设置为 30 秒)?
更多信息:我正在使用瘦驱动程序将 weblogic 与 ORACLE RAC 连接起来
对于这种情况,我没有在日志中看到与死锁相关的错误或类似的错误:(