http://erpapi.zhcxkj.com/erp/order/getorder 接口:计算器调用的订单接口:梳理,接口瓶颈,推动优化改造
此处做记录,后面并发高了,跟踪验证
select count(0) from RB_OrderInfo nolock -- 45657760
select count(0) from RB_OrderSource nolock -- 13536
select count(0) from RB_OrderList nolock -- 58917437
2.解决方案:
1. 慢sql优化;都有使用索引
2. 数据归档;已归档了2年前的数据
3.sql-1
有使用索引,并发高了慢
SELECT o.CustomerID,
a.OrderSourceType,
o.WareHouseID,
o.Country,
k.SKU,
Max(K.ID) AS ID
FROM RB_OrderInfo o (nolock)
INNER JOIN RB_OrderSource a (nolock)
ON o.CustomerID = a.CustomerID
AND o.OrdersourceID = a.ID
INNER JOIN RB_OrderList k (nolock)
ON o.CustomerID = k.CustomerID
AND o.OrderCode = k.OrderCode
WHERE o.CustomerID = 1
AND o.WareHouseID = 5312
AND a.OrderSourceType = 70
AND o.Country = 'BR'
AND k.SKU IN ( '16537679', '16536941', '16534306', '16530187',
'16528995', '16528982', '16525458', '16525272',
'16525033', '16524847', '16524799', '16524719',
'16524240', '16523795', '16521640', '16518471',
'16518464', '16518223', '16517625', '16514105',
'16513528', '16512498', '16512456', '16512264',
'16512008', '16511862', '16511745', '16511534',
'16509012', '16508778', '16508584', '16505811',
'16505671', '16505385', '16505371', '16505088',
'16505101', '16504064', '16504009', '16503928',
'16503884', '16503780', '16503544', '16503296',
'16503292', '16503147', '16502906', '16502621',
'16500950', '16496594', '16496541', '16496470',
'16496114', '16495511', '16494047', '16492704',
'16491566', '16491558', '16490692', '16489708',
'16489644', '16489240', '16488362', '16488599',
'16488599', '16488411', '16487501', '16486823',
'16486664', '16486497', '16486334', '16486493',
'16486493', '16486260', '16485683', '16485775',
'16485708', '16485638', '16485481', '16485120',
'16483935', '16483715', '16483717', '16483127',
'16482841', '16482849', '16482851', '16482778',
'16482429', '16482012', '16481475', '16481224',
'16481155', '16479651', '16477473', '16477385',
'16477433', '16476904', '16476894' )
AND o.OrderState > 0
AND o.ProductNumber = 1
AND o.IsPay = 1
AND o.IsStockOrder = 0
AND o.DownLoadUpdateTime > '2000-01-01'
AND o.PayTime < Dateadd(d, -1, Getdate())
AND Isnull(o.TotalPrice, 0) > 0
GROUP BY o.CustomerID,
a.OrderSourceType,
o.WareHouseID,
o.Country,
k.SKU;
3-2:sql 2
问题分析:
获取订单费用,查询需1分46秒,RB_Product_Fee
5亿数据是否可以归档?
SELECT OrderCode,
OperateType,
OperateFee,
ExchangeRMB
FROM RB_Product_Fee (NOLOCK)
WHERE CustomerID = 1
AND OrderCode IN ( 202204010020118507041, 202204190315119297134, 202205212316120889102, 202205312256121306117 )
AND IsTrue = 1
AND SKU = '5614827'
ORDER BY OperateType ASC;