首页 > 解决方案 > SQL DELETE 两次或 DELETE 与 OR 哪个性能更高?

问题描述

DELETESQL两次或DELETEwith哪个性能更高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?

标签: sql-serverperformancetsqlsql-delete

解决方案


推荐阅读