sql-server - SQL DELETE 两次或 DELETE 与 OR 哪个性能更高?
问题描述
DELETE
SQL两次或DELETE
with哪个性能更高OR
?
就我而言,我有两个选择。
1
DELETE FROM [dbo].[LegalContractorTemps] WHERE [Code] IS NULL;
DELETE FROM [dbo].[LegalContractorTemps]
WHERE [Id] IN (
SELECT [Id]
FROM [dbo].[LegalContractorTemps] [Temp]
JOIN (
SELECT [Code], [Status], MAX([Id]) as [MaxId]
FROM [dbo].[LegalContractorTemps]
GROUP BY [Code], [Status]
HAVING COUNT([Id]) > 1
) [TempGroup]
ON ([Temp].[Code] = [TempGroup].[Code] AND [Temp].[Status] = [TempGroup].[Status] AND [MaxId] != [Id])
);
2
DELETE FROM [dbo].[LegalContractorTemps]
WHERE ([Code] IS NULL) OR [Id] IN (
SELECT [Id]
FROM [dbo].[LegalContractorTemps] [Temp]
JOIN (
SELECT [Code], [Status], MAX([Id]) as [MaxId]
FROM [dbo].[LegalContractorTemps]
GROUP BY [Code], [Status]
HAVING COUNT([Id]) > 1
) [TempGroup]
ON ([Temp].[Code] = [TempGroup].[Code] AND [Temp].[Status] = [TempGroup].[Status] AND [MaxId] != [Id])
);
Code
和在这种Status
情况下形成一个唯一索引。我正在使用 SQL Server。
我应该选择1还是2?
解决方案
推荐阅读
- speech-recognition - 为什么在梅尔谱图中使用 128 个梅尔波段?
- java - 使用 JPA 规范在 PostgreSQL jsonb 列中的所有值中搜索
- pandas - 如何删除多索引数据框熊猫中的特定行
- jvm - JVM 在哪里存储方法上的本地原始变量
- node.js - 运行从 Docker 中的 NPM 模块安装的后台 CLI
- java - imgproc 模块中某些函数的 OpenCV Android React Native 未知异常
- angular - 如何将 redirectTo 与包含参数的 url 一起使用?
- mysql - 选择所有日期最新的值
- html - XSL 擦除部分文本维护内部 html 标记
- javascript - 在 OnInit 中使用时方法不能删除 Map 元素?