我有一个充满GUID的临时表## TempCleanseTheseCustomers。
我想删除几个与customer表相关的表。大约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#代码等运行它。
答案 0 :(得分:0)
可能您可以检查## TempCleanseTheseCustomers上没有重复记录,并检查其他几个表上是否存在索引和键