Sre*_*S T 2 sql sql-server sql-server-2008 sql-delete
delete from a A where a.ID = 132.
Run Code Online (Sandbox Code Playgroud)
表A包含大约5000条记录,A.ID是表A中的主键.但是它需要很长时间才能删除.有时它也会超时.该表包含三个索引,并由三个外键引用.任何人都可以解释为什么即使我们基于主键删除它也需要很长时间.请告诉我一些优化这个问题的方法......?
Asa*_*aph 12
可能的原因:
1)级联删除操作
2)触发器
3)主键列的类型不是整数,因此强制对每个pk值进行类型转换以进行比较.这需要全表扫描.
4)你的查询真的以你在问题中发布的点结尾吗?如果是这样,该数字可以被认为是浮点数而不是整数,从而导致类似于3的类型转换
5)您的删除查询正在等待其他一些慢查询释放锁定