如何批量执行存储过程?
How do I execute a stored procedure in batches?
我从以前的开发人员那里继承了一个 NopCommerce 项目。
他们给我留下了一个拥有 3.5 亿来宾用户的客户 table。
我正在执行删除来宾用户的存储过程,但现在已经 运行ning 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
好吧 - 事实证明,有一种非常明显的拆分工作的方法。
我将 post 放在下面,以防其他人 运行 遇到同样的问题。
通过设置日期范围,您可以运行分步执行此操作,而不会使服务器停滞数小时或数天。
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
GO
我从以前的开发人员那里继承了一个 NopCommerce 项目。 他们给我留下了一个拥有 3.5 亿来宾用户的客户 table。
我正在执行删除来宾用户的存储过程,但现在已经 运行ning 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
好吧 - 事实证明,有一种非常明显的拆分工作的方法。 我将 post 放在下面,以防其他人 运行 遇到同样的问题。
通过设置日期范围,您可以运行分步执行此操作,而不会使服务器停滞数小时或数天。
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
GO