因此,我可以成功运行任何SELECT
语句,但是执行任何UPDATE
语句只是挂起,直到它们最终超时为止。尝试执行任何存储过程时也会发生这种情况。其他连接到数据库的用户可以运行任何东西而不会遇到此问题。
每个用户是否有可以转储的缓存或类似的内容?我通常会厌倦等待并取消操作,所以我不知道这是否导致了问题。
仅供参考,事情很简单:
UPDATE SOME_TABLE
SET SOME_COLUMN = 'TEST';
EXECUTE SOME_PROCEDURE(1234);
但这可行:
SELECT * FROM SOME_TABLE; -- various WHERE clauses don't cause any problems.
答案 0 :(得分:2)
根据我的经验,这种情况最经常发生,因为表上还有另一个未提交的操作。例如:用户1成功发布了一个更新,但没有提交或回滚它。用户2(甚至用户1的另一个会话)发出另一个更新,该更新只是挂起,直到其他未决的更新被提交或回滚。您说“其他用户”没有相同的问题,这使我想知道他们是否要提交更改。如果是这样,那么他们是否要更新同一张表或另一张表。