[步骤]
declare @CustomerID int= 1 ,@OrderSourceID int= 9500
SELECT alias.*, b.ItemID, c.SKU, c.OrderSourceSKU, c.Quantity, c.ProductType as MainProductType, c.IsVariation as IsProductVariation, Isnull(p.ProductState, 0) AS ProductState, B.Duration FROM RB_Ebay_Listing_AutoSupplement_V2 alias WITH(nolock) INNER JOIN RB_Ebay_Listing_Basic_V2 b WITH(nolock) ON alias.CustomerID = b.CustomerID AND alias.ListingBasicID = b.ListingBasicID AND alias.OrderSourceID = b.OrderSourceID INNER JOIN RB_Ebay_Listing_Product_V2 c WITH(nolock) ON alias.CustomerID = c.CustomerID AND alias.ListingBasicID = c.ListingBasicID AND alias.ListingProductID = c.ListingProductID AND alias.OrderSourceID = c.OrderSourceID LEFT JOIN RB_Product p WITH(nolock) ON c.CustomerID = p.CustomerID AND c.SKU = p.SKU WHERE b.OnlineState = 1 AND b.ListingType = 8 AND alias.CustomerID = @CustomerID AND alias.OrderSourceID = @OrderSourceID AND alias.EnableAutoSupplement = 1 AND ( alias.IsInventoryCheck is null or alias.IsInventoryCheck = 0 )
[结果]
[期望]
优化性能,提升效率
测试执行sql 已经使用了索引查找,查询出55.5万数据用时41秒;
去掉 alias.*, 查询出55.5万数据用时21秒;
优化建议: 将SELECT alias.* 修改为查询具体需使用的字段