我有一个SQL Server数据库表,其中包含5列和3行。架构说明:
"scripts": {
"build": "del-cli lib && tsc",
"devinstall": "npm run build && npm run _install -- node_modules/husky && node scripts/dev-fix-path",
"devuninstall": "npm run build && npm run preuninstall -- node_modules/husky",
"fix": "npm run lint -- --fix",
"install": "node husky install",
"lint": "tslint 'src/**/*.ts'",
"postpublish": "pinst --disable",
"postversion": "git push && git push --tags",
"prepublishOnly": "npm run test && npm run build && pinst --enable && pkg-ok",
"preuninstall": "node husky uninstall",
"test": "npm run lint && jest",
"version": "jest -u && git add -A src/installer/__tests__/__snapshots__"
}
(cId
)是表的ID,它不是自动数字的,但现在其值为1-2-3。 int
(cIdFoot
)是来自另一个具有4行的静态数据表的外键。 int
(cwId
)是表中有很多列但只有一行的表中的另一个外键。int
的描述列尽管varchar(MAX)
和cIdFoot
都是外键,因为它们在此表中几乎是空表,因此当前未将其创建为外键。
我的更新是这样:
cwId
这个简单的SQL脚本要花6分钟以上,并且该表只有3行。
执行选择似乎还可以,但是当我尝试更新时,它会花费很多时间,并且通常会超时。我已经看到在日志-> .ldf文件中似乎没有变大,可能是它已损坏或创建得不好。当更新或插入时,具有超过10000行的更大的表可以正常工作。
任何帮助将不胜感激。
执行计划:The Execution plan
答案 0 :(得分:3)
根据您的评论,SPID 85阻止了您的更新查询。在此过程完成之前,您的更新将不会完成,或者会释放更新所需要的锁。
如果您杀死SPID 85,将运行更新,但是您需要弄清楚此过程在做什么以及为什么在该表上持有锁。在修复它之前,不可能停止在此表上获得锁(从而阻止更新)。