我有一个装满 GUID 的临时表 ##TempCleanseTheseCustomers。
我想删除客户表的几个相关表。大约 30 个相关表格。以下是一些示例:
Delete from AddressHistory
Where CustomerId in (select CustomerId From ##TempCleanseTheseCustomers)
Delete from Address
Where CustomerId in (select CustomerId From ##TempCleanseTheseCustomers)
DECLARE @MessageMessageId uniqueidentifier
set @MessageMessageId =
(
SELECT TOP (1) Message.MessageId
FROM Customer INNER JOIN
CustomerMessage ON Customer.CustomerId =
CustomerMessage.CustomerId INNER JOIN
Message ON CustomerMessage.MessageId =
Message.MessageId
Where Customer.CustomerId in (select CustomerId From
##TempCleanseTheseCustomers)
)
Delete from MessageAttachment
Where MessageId = @MessageMessageId
Delete from Message
Where MessageId = @MessageMessageId
如何使它尽可能快地运行?(##TempCleanseTheseCustomers 包含超过 200 万行(
我尝试将表移动到内存中。通过 C# 代码等运行它。
也许您可以检查 ##TempCleanseTheseCustomers 上没有重复的记录,并检查其他几个表上是否存在索引和键