我从以前的开发人员那里继承了一个NopCommerce项目。他们给我留下了一张有3.5亿客用户的顾客桌。
我正在执行一个存储过程来删除来宾用户,但它已经运行了15个小时。DTU不断地达到100%,网站正在崩溃。有办法分批运行吗?假设每次运行有500万条记录?
下面是SQL:
DECLARE @return_value int,
@TotalRecordsDeleted int
EXEC @return_value = [dbo].[DeleteGuests]
@CreatedFromUtc = NULL,
@CreatedToUtc = NULL,
@TotalRecordsDeleted = @TotalRecordsDeleted OUTPUT
SELECT @TotalRecordsDeleted as N'@TotalRecordsDeleted'
SELECT 'Return Value' = @return_value
GO发布于 2022-04-14 16:28:46
事实证明,有一个很明显的方法来分割这份工作。我会在下面发布,以防其他人遇到同样的问题。
通过设置日期范围,您可以分步骤运行它,而不会使服务器陷入瘫痪数小时或数天。
DECLARE @return_value int,
@TotalRecordsDeleted int
EXEC @return_value = [dbo].[DeleteGuests]
@CreatedFromUtc = N'2022-04-01', -- Start date
@CreatedToUtc = N'2022-04-15', -- End Date
@TotalRecordsDeleted = @TotalRecordsDeleted OUTPUT
SELECT @TotalRecordsDeleted as N'@TotalRecordsDeleted'
SELECT 'Return Value' = @return_value
GOhttps://stackoverflow.com/questions/71864543
复制相似问题