【发布时间】:2019-12-05 12:56:04
【问题描述】:
我需要在 SQL Server 中删除 900,000.00 万条记录。
我想知道最好的方法。
我做了以下 SELECT。
DeleteTable:
DELETE TOP(1000) TAB1
FROM TABLE1 TAB1
LEFT JOIN TABLE2 TAB2 ON TAB1.ID_PRODUCT = AB2.ID_PRODUCT
WHERE TAB2.ID_PRODUCT IS NULL;
IF @@ROWCOUNT <> 0 goto DeleteTable;
我想知道是否可以优化此查询以获得更好的删除性能
谢谢。
【问题讨论】:
-
如果
EXISTS条件比外连接更快,我不会感到惊讶 -
900,000.00 million?!?那是多少? -
@jarlh 我猜 OP 意味着 900 万......
-
为什么不直接使用
truncate? -
任何依赖,如 fk 引用等?
标签: sql-server tsql sql-delete