[步骤]


1.
IF EXISTS ( SELECT * FROM tempdb.dbo.sysobjects WHERE id = object_id (N'tempdb..#tbAddStrWordSaleOrderSkuIds') AND type = 'U' ) DROP TABLE #tbAddStrWordSaleOrderSkuIds CREATE TABLE #tbAddStrWordSaleOrderSkuIds ( Id int PRIMARY KEY ) INSERT INTO #tbAddStrWordSaleOrderSkuIds SELECT convert(int,item) AS Id FROM CharSplitForIn ( '105415133,105415142', ','); SELECT a.OrderSourceSKUID ,isnull(sum(isnull( ro.SalesNum,0)),0) as SaleNum FROM dbo.RB_Amazon_Product_Base a ( nolock ) LEFT JOIN RB_Report_OrderSourceSKUDay ro (NOLOCK) ON a.CustomerID=ro.CustomerID AND a.OrderSourceID = ro.OrderSourceID AND a.OrderSourceSKU=ro.OrderSourceSKU INNER JOIN #tbAddStrWordSaleOrderSkuIds f ON a.OrderSourceSKUID=f.id WHERE a.CustomerID = 1 AND ro.SalesDay >= '2023-01-23' group by a.OrderSourceSKUID; drop table if exists #tbAddStrWordSaleOrderSkuIds;
2.
SELECT a.SKU, a.OrderSourceID, a.OrderSourceSKUID, a.OrderSourceSKU, a.OrderSourceName, a.OrderSourceCountry, a.ASINorItemID, a.DevIDSellerId, a.IsFBA, a.BusinessUserName, a.AddAdminName, a.BrowsePathByID FROM RB_Amazon_Product_Base a ( nolock ) INNER JOIN RB_Product e ( nolock ) ON e.CustomerID = a.CustomerID AND e.sku = a.sku AND e.ProductProperty <> 2 INNER JOIN RB_OrderSource c ( nolock ) ON a.CustomerID = c.CustomerID AND a.OrderSourceID = c.id AND c.IsActive = 1 INNER JOIN RB_OrderSource_EbayAmazonAPI d ( nolock ) ON d.CustomerID = c.CustomerID AND d.OrderSourceID = c.ID AND d.IsActive = 1 WHERE a.CustomerID = 1 AND a.OrderSourceSKUID > 0 and a.OrderSourceSKUID <= 80000 AND a.sku IN ( SELECT CONVERT ( VARCHAR, item ) FROM Charsplitforin ( '9632288,4966183,6078709,3556442,9645586,9653861,9280314,4551541,6133357,6308704,10111295,5508214,3900218,4931439,4512644,8474607,9964658,8327205,6442020,8461453,9429128,9872890,4919847,5258175,3130046,7954999,8095600,9937767,9770113,4068990', ',' )) AND a.msaleNum = 0 AND a.IsOffShelf = 0 and a.IsDelete=0 AND a.OrderSourceCountry='TR'
3.
SELECT isnull( max(a.OrderSourceSKUID),0) as OrderSourceSKUID FROM RB_Amazon_Product_Base a ( nolock ) INNER JOIN RB_Product e ( nolock ) ON e.CustomerID = a.CustomerID AND e.sku = a.sku AND e.ProductProperty <> 2 INNER JOIN RB_OrderSource c ( nolock ) ON a.CustomerID = c.CustomerID AND a.OrderSourceID = c.id AND c.IsActive = 1 INNER JOIN RB_OrderSource_EbayAmazonAPI d ( nolock ) ON d.CustomerID = c.CustomerID AND d.OrderSourceID = c.ID AND d.IsActive = 1 WHERE a.CustomerID = 1 AND a.OrderSourceSKUID > 0 AND a.OrderSourceSKUID > 0 AND a.sku IN ( SELECT CONVERT ( VARCHAR, item ) FROM Charsplitforin ( '11609234,11609352,11609396,11609494', ',' )) AND a.msaleNum = 0 AND a.IsOffShelf = 0 and a.IsDelete=0 AND a.OrderSourceCountry='ES'
4.
SELECT isnull( min(a.OrderSourceSKUID),0) as OrderSourceSKUID FROM RB_Amazon_Product_Base a ( nolock ) INNER JOIN RB_Product e ( nolock ) ON e.CustomerID = a.CustomerID AND e.sku = a.sku AND e.ProductProperty <> 2 INNER JOIN RB_OrderSource c ( nolock ) ON a.CustomerID = c.CustomerID AND a.OrderSourceID = c.id AND c.IsActive = 1 INNER JOIN RB_OrderSource_EbayAmazonAPI d ( nolock ) ON d.CustomerID = c.CustomerID AND d.OrderSourceID = c.ID AND d.IsActive = 1 WHERE a.CustomerID = 1 AND a.OrderSourceSKUID > 0 AND a.OrderSourceSKUID > 1072725877 AND a.sku IN ( SELECT CONVERT ( VARCHAR, item ) FROM Charsplitforin ( '8691248,8505735,8823969,8709279,8753062,8754108,8756880,8827599,8863161,8862726,8860620,8859564,8859943,8851752,8851926,8851927,8758127,8758233', ',' )) AND a.msaleNum = 0 AND a.IsOffShelf = 0 and a.IsDelete=0 AND a.OrderSourceCountry='ES'
[结果]
[期望]
1.修改Charsplitforin 成表传值类型 2.改成读库查询
问题原因:sql并发太高,erp数据库卡
优化方案:表传值查询,读库查询
涉及范围:埋词服务