sql - 更新表导致子表上的页级锁定
问题描述
在实时环境中,我们有一个表,我们正试图对其进行非常定期的更新,例如让我们称之为 Employee。但是,当我们更新此表时,我们会在子表上获得页级锁定,例如让我们将此称为 EmployeeAddress。这会导致数据库中的事务死锁/阻塞进程。
该代码是一个非常简单的更新,类似于:update Employee set fieldA = A, fieldB = B ... WHERE employeeId = x
,然后有时会导致 EmployeeAddress 上的页面级锁定,从而使其他进程死锁。
我的问题:有没有人见过类似的死锁/页面级锁?我很确定在 EmployeeAddress 表中删除对 EmployeeId 的 fk 约束可以解决这个问题,但是 SQL Server 应该能够在没有这些死锁问题的情况下处理这个 fk 约束吗?
谢谢!
编辑:我忘了补充,我们有一个可能的建议是修改子表的填充因子设置,这是一个合理的选择吗?
解决方案
推荐阅读
- node.js - 具有 Mysql2 时区问题的节点
- file - Zabbix文件最后修改日期检查问题
- elasticsearch - 无法开启 X-Pack Elasticsearch
- c# - 互联网 C# 上的套接字连接问题
- sql - 在 sql 存储过程中选择插入更新
- python - 当特定 ip 连接到 wifi 时的 IP 记录器
- javascript - 向字段添加数据,仅发送后者
- maven - GitHub Action CI - 下载并设置 JDK
- spring-boot - 为从 SCDF 启动的批处理作业创建的 PODS 的 ConfigMap
- node.js - 在 1 列中按星期几查询 Sequelize 表,在另一列中按布尔值查询