画一个简单的表结构:
Table1 Table2
---------- ----------
ID<-------| ID
Name |-->Table1ID
Name
Table1
有几百万行(例如 350 万行)。我通过主键发出删除:
DELETE FROM Table1 WHERE ID = 100;
Table2
引用Table1
中没有行ID = 100
,因此删除工作不会违反任何外键约束。
您希望删除需要多长时间?大约几毫秒?几百毫秒?一秒钟或更长时间?几秒钟?等等,假设机器没有陷入困境并且可以轻松处理请求。
现在,我遇到这种情况,这样的删除大约需要 700 毫秒。对我来说,这似乎太慢了。我很好奇我是否不在基地或其他人是否认为这太慢了,以及帮助加快速度的建议!
这是实际的执行计划:
(这里的 XML 执行计划:http: //pastebin.com/q9hSMLi3)
聚集索引删除 (81%) 命中聚集 PK、非聚集唯一索引和非聚集非唯一索引。