暂无
任务描述
需求描述
问题描述:盛宝隆仓租服务里面的代码,存在大量循环执行SQL
代码文件:FeeCharge_Job_Service.cs,代码行数1279到1304 行代码。
这段代码,是在循环里面执行的,结果就是循环执行SQL,每轮服务循环5000次,导致这代码要执行3个小时左右。
每次循环执行的SQL【SELECT '@Daysofstorageage@' as CalculateField, Age AS 'FieldValue' FROM inv_inventoryage WHERE Id= @OrderCode
UNION all
SELECT '@DailyStockVolume@' as CalculateField, Length*Width*Height as 'FieldValue' FROM inv_inventoryage where Id=@OrderCode
UNION all
SELECT '@TotalDailyInventory@' as CalculateField, Number AS 'FieldValue' FROM inv_inventoryage WHERE Id = @OrderCode】
优化方案:将 【循环执行SQL】 改成 【批量执行SQL】, 每10个循环执行的SQL拼接到一起执行一次拿到结果,减少循环查询数据库次数。
代码文件:FeeCharge_Job_Service.cs,代码行数1279到1304 行代码。
这段代码,是在循环里面执行的,结果就是循环执行SQL,每轮服务循环5000次,导致这代码要执行3个小时左右。
每次循环执行的SQL【SELECT '@Daysofstorageage@' as CalculateField, Age AS 'FieldValue' FROM inv_inventoryage WHERE Id= @OrderCode
UNION all
SELECT '@DailyStockVolume@' as CalculateField, Length*Width*Height as 'FieldValue' FROM inv_inventoryage where Id=@OrderCode
UNION all
SELECT '@TotalDailyInventory@' as CalculateField, Number AS 'FieldValue' FROM inv_inventoryage WHERE Id = @OrderCode】
优化方案:将 【循环执行SQL】 改成 【批量执行SQL】, 每10个循环执行的SQL拼接到一起执行一次拿到结果,减少循环查询数据库次数。
验收标准
暂无