任务描述

从华为慢sql里捞出来的,看似是程伟的,若不对请转个相关的人或我


1.问题描述,分析

  count() 查询,查询了大量字段,导致查询慢,每天出现多次


2.解决方案

    去掉不必要的查询字段,测试查询从20秒到优化后的1秒查询出结果


优化后的sq;


SELECT COUNT(1) FROM ( SELECT  a.P_Code 
        --a.ID SingleListID 
        --a.Single_NO ,
        --a.Memo,
        --b.Id SingleListDetailId ,
        --b.DetailID ProcurementDetailID ,
        --d.SupplyCode ,
        --b.SKU ,
        --c.ClientSKU,
        --c.ImageUrl ,
        --c.ProductName ,
        --c.ProductNameCN ,
        --a.AddTime OrderTime ,
        --b.ActualBuyNum ,
        --e.ShipmentQty ,
        --b.ActualProductPrice Price,
        --b.EnquirySkuStates,
        --wh.WareHouseName
FROM    RB_Procurement_Detail_SingleList a ( NOLOCK )
        INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID
                                                              AND a.ID = b.ListID
        INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID
                                                  AND c.SKU = b.SKU
        LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID
        LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID
        LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId
                                                       AND d.SupplierId = a.SupplierID
                                                       AND b.SKU = d.ProductSku
        LEFT JOIN ( SELECT  ss.CustomerId ,
                            ss.SupplierId ,
                            ss.SingleListID ,
                            ss.SKU ,
                            SUM(ss.ShipmentQty) ShipmentQty
                    FROM    dbo.RB_Supplier_Shipment ss ( NOLOCK )
                    GROUP BY ss.CustomerId ,
                            ss.SupplierId ,
                            ss.SingleListID,
                            ss.SKU
                  ) e ON e.CustomerId = a.CustomerID
                         AND a.SupplierID = e.SupplierId
                         AND e.SingleListID = b.ListID
                         AND e.SKU = b.SKU
WHERE   ISNULL(a.IsDelete, 0) = 0
        AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0  
AND a.CustomerID = 1
        AND a.SupplierID = 16339 AND a.StepState =9  and a.AddTime >= '2018-01-01 00:00:00' and  b.ActualBuyNum != ISNULL(e.ShipmentQty,0)  ) AS PagerTable

--',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'

3.原始sql:

exec sp_executesql N'SELECT COUNT(1) FROM ( SELECT  a.P_Code ,
        a.ID SingleListID ,
        a.Single_NO ,
        a.Memo,
        b.Id SingleListDetailId ,
        b.DetailID ProcurementDetailID ,
        d.SupplyCode ,
        b.SKU ,
        c.ClientSKU,
        c.ImageUrl ,
        c.ProductName ,
        c.ProductNameCN ,
        a.AddTime OrderTime ,
        b.ActualBuyNum ,
        e.ShipmentQty ,
        b.ActualProductPrice Price,
        b.EnquirySkuStates,
        wh.WareHouseName
FROM    RB_Procurement_Detail_SingleList a ( NOLOCK )
        INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID
                                                              AND a.ID = b.ListID
        INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID
                                                  AND c.SKU = b.SKU
        LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID
        LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID
        LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId
                                                       AND d.SupplierId = a.SupplierID
                                                       AND b.SKU = d.ProductSku
        LEFT JOIN ( SELECT  ss.CustomerId ,
                            ss.SupplierId ,
                            ss.SingleListID ,
                            ss.SKU ,
                            SUM(ss.ShipmentQty) ShipmentQty
                    FROM    dbo.RB_Supplier_Shipment ss ( NOLOCK )
                    GROUP BY ss.CustomerId ,
                            ss.SupplierId ,
                            ss.SingleListID,
                            ss.SKU
                  ) e ON e.CustomerId = a.CustomerID
                         AND a.SupplierID = e.SupplierId
                         AND e.SingleListID = b.ListID
                         AND e.SKU = b.SKU
WHERE   ISNULL(a.IsDelete, 0) = 0
        AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0  
AND a.CustomerID = 1
        AND a.SupplierID = 16339 AND a.StepState =9  and a.AddTime >= @StartTime and  b.ActualBuyNum != ISNULL(e.ShipmentQty,0)  ) AS PagerTable',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'

附件
历史记录  
  1. 2022-05-04 12:00:05, 由 陈少军 创建。
  2. 2022-05-04 12:01:10, 由 陈少军 指派给 程伟。
    修改了 预计剩余,旧值为 "0",新值为 "2"。
    参考解决方案 修改
  3. 2022-05-10 11:53:21, 由 唐飞飞 编辑。
    修改了 任务描述,区别为:
    010- SELECT COUNT(1) FROM ( SELECT a.P_Code --a.ID SingleListID --a.Single_NO , --a.Memo, --b.Id SingleListDetailId , --b.DetailID ProcurementDetailID , --d.SupplyCode , --b.SKU , --c.ClientSKU, --c.ImageUrl , --c.ProductName , --c.ProductNameCN , --a.AddTime OrderTime , --b.ActualBuyNum , --e.ShipmentQty , --b.ActualProductPrice Price, --b.EnquirySkuStates, --wh.WareHouseNameFROM RB_Procurement_Detail_SingleList a ( NOLOCK ) INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID AND a.ID = b.ListID INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID AND c.SKU = b.SKU LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId AND d.SupplierId = a.SupplierID AND b.SKU = d.ProductSku LEFT JOIN ( SELECT ss.CustomerId , ss.SupplierId , ss.SingleListID , ss.SKU , SUM(ss.ShipmentQty) ShipmentQty FROM dbo.RB_Supplier_Shipment ss ( NOLOCK ) GROUP BY ss.CustomerId , ss.SupplierId , ss.SingleListID, ss.SKU ) e ON e.CustomerId = a.CustomerID AND a.SupplierID = e.SupplierId AND e.SingleListID = b.ListID AND e.SKU = b.SKUWHERE ISNULL(a.IsDelete, 0) = 0 AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0 AND a.CustomerID = 1 AND a.SupplierID = 16339 AND a.StepState =9 and a.AddTime >= '2018-01-01 00:00:00' and b.ActualBuyNum != ISNULL(e.ShipmentQty,0) ) AS PagerTable --',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'
    010+ SELECT COUNT(1) FROM ( SELECT a.P_Code --a.ID SingleListID --a.Single_NO , --a.Memo, --b.Id SingleListDetailId , --b.DetailID ProcurementDetailID , --d.SupplyCode , --b.SKU , --c.ClientSKU, --c.ImageUrl , --c.ProductName , --c.ProductNameCN , --a.AddTime OrderTime , --b.ActualBuyNum , --e.ShipmentQty , --b.ActualProductPrice Price, --b.EnquirySkuStates, --wh.WareHouseNameFROM RB_Procurement_Detail_SingleList a ( NOLOCK ) INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID AND a.ID = b.ListID INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID AND c.SKU = b.SKU LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId AND d.SupplierId = a.SupplierID AND b.SKU = d.ProductSku LEFT JOIN ( SELECT ss.CustomerId , ss.SupplierId , ss.SingleListID , ss.SKU , SUM(ss.ShipmentQty) ShipmentQty FROM dbo.RB_Supplier_Shipment ss ( NOLOCK ) GROUP BY ss.CustomerId , ss.SupplierId , ss.SingleListID, ss.SKU ) e ON e.CustomerId = a.CustomerID AND a.SupplierID = e.SupplierId AND e.SingleListID = b.ListID AND e.SKU = b.SKUWHERE ISNULL(a.IsDelete, 0) = 0 AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0 AND a.CustomerID = 1 AND a.SupplierID = 16339 AND a.StepState =9 and a.AddTime >= '2018-01-01 00:00:00' and b.ActualBuyNum != ISNULL(e.ShipmentQty,0) ) AS PagerTable --',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'
    012- exec sp_executesql N'SELECT COUNT(1) FROM ( SELECT a.P_Code , a.ID SingleListID , a.Single_NO , a.Memo, b.Id SingleListDetailId , b.DetailID ProcurementDetailID , d.SupplyCode , b.SKU , c.ClientSKU, c.ImageUrl , c.ProductName , c.ProductNameCN , a.AddTime OrderTime , b.ActualBuyNum , e.ShipmentQty , b.ActualProductPrice Price, b.EnquirySkuStates, wh.WareHouseNameFROM RB_Procurement_Detail_SingleList a ( NOLOCK ) INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID AND a.ID = b.ListID INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID AND c.SKU = b.SKU LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId AND d.SupplierId = a.SupplierID AND b.SKU = d.ProductSku LEFT JOIN ( SELECT ss.CustomerId , ss.SupplierId , ss.SingleListID , ss.SKU , SUM(ss.ShipmentQty) ShipmentQty FROM dbo.RB_Supplier_Shipment ss ( NOLOCK ) GROUP BY ss.CustomerId , ss.SupplierId , ss.SingleListID, ss.SKU ) e ON e.CustomerId = a.CustomerID AND a.SupplierID = e.SupplierId AND e.SingleListID = b.ListID AND e.SKU = b.SKUWHERE ISNULL(a.IsDelete, 0) = 0 AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0 AND a.CustomerID = 1 AND a.SupplierID = 16339 AND a.StepState =9 and a.AddTime >= @StartTime and b.ActualBuyNum != ISNULL(e.ShipmentQty,0) ) AS PagerTable',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'
    012+ exec sp_executesql N'SELECT COUNT(1) FROM ( SELECT a.P_Code , a.ID SingleListID , a.Single_NO , a.Memo, b.Id SingleListDetailId , b.DetailID ProcurementDetailID , d.SupplyCode , b.SKU , c.ClientSKU, c.ImageUrl , c.ProductName , c.ProductNameCN , a.AddTime OrderTime , b.ActualBuyNum , e.ShipmentQty , b.ActualProductPrice Price, b.EnquirySkuStates, wh.WareHouseNameFROM RB_Procurement_Detail_SingleList a ( NOLOCK ) INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID AND a.ID = b.ListID INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID AND c.SKU = b.SKU LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId AND d.SupplierId = a.SupplierID AND b.SKU = d.ProductSku LEFT JOIN ( SELECT ss.CustomerId , ss.SupplierId , ss.SingleListID , ss.SKU , SUM(ss.ShipmentQty) ShipmentQty FROM dbo.RB_Supplier_Shipment ss ( NOLOCK ) GROUP BY ss.CustomerId , ss.SupplierId , ss.SingleListID, ss.SKU ) e ON e.CustomerId = a.CustomerID AND a.SupplierID = e.SupplierId AND e.SingleListID = b.ListID AND e.SKU = b.SKUWHERE ISNULL(a.IsDelete, 0) = 0 AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0 AND a.CustomerID = 1 AND a.SupplierID = 16339 AND a.StepState =9 and a.AddTime >= @StartTime and b.ActualBuyNum != ISNULL(e.ShipmentQty,0) ) AS PagerTable',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'
    010- <p><br />SELECT COUNT(1) FROM ( SELECT a.P_Code<br /> --a.ID SingleListID<br /> --a.Single_NO ,<br /> --a.Memo,<br /> --b.Id SingleListDetailId ,<br /> --b.DetailID ProcurementDetailID ,<br /> --d.SupplyCode ,<br /> --b.SKU ,<br /> --c.ClientSKU,<br /> --c.ImageUrl ,<br /> --c.ProductName ,<br /> --c.ProductNameCN ,<br /> --a.AddTime OrderTime ,<br /> --b.ActualBuyNum ,<br /> --e.ShipmentQty ,<br /> --b.ActualProductPrice Price,<br /> --b.EnquirySkuStates,<br /> --wh.WareHouseName<br />FROM RB_Procurement_Detail_SingleList a ( NOLOCK )<br /> INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID<br /> AND a.ID = b.ListID<br /> INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID<br /> AND c.SKU = b.SKU<br /> LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID<br /> LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID<br /> LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId<br /> AND d.SupplierId = a.SupplierID<br /> AND b.SKU = d.ProductSku<br /> LEFT JOIN ( SELECT ss.CustomerId ,<br /> ss.SupplierId ,<br /> ss.SingleListID ,<br /> ss.SKU ,<br /> SUM(ss.ShipmentQty) ShipmentQty<br /> FROM dbo.RB_Supplier_Shipment ss ( NOLOCK )<br /> GROUP BY ss.CustomerId ,<br /> ss.SupplierId ,<br /> ss.SingleListID,<br /> ss.SKU<br /> ) e ON e.CustomerId = a.CustomerID<br /> AND a.SupplierID = e.SupplierId<br /> AND e.SingleListID = b.ListID<br /> AND e.SKU = b.SKU<br />WHERE ISNULL(a.IsDelete, 0) = 0<br /> AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0<br /><span style="font-size:13px;"><span> </span>AND a.CustomerID = 1</span><br /> AND a.SupplierID = 16339 AND a.StepState =9 and a.AddTime &gt;= '2018-01-01 00:00:00' and b.ActualBuyNum != ISNULL(e.ShipmentQty,0) ) AS PagerTable<br /><span style="font-size:13px;"> </span><br /><span style="font-size:13px;"><span> </span>--',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'</span><br /></p>
    010+ <p><br />SELECT COUNT(1) FROM ( SELECT a.P_Code<br /> --a.ID SingleListID<br /> --a.Single_NO ,<br /> --a.Memo,<br /> --b.Id SingleListDetailId ,<br /> --b.DetailID ProcurementDetailID ,<br /> --d.SupplyCode ,<br /> --b.SKU ,<br /> --c.ClientSKU,<br /> --c.ImageUrl ,<br /> --c.ProductName ,<br /> --c.ProductNameCN ,<br /> --a.AddTime OrderTime ,<br /> --b.ActualBuyNum ,<br /> --e.ShipmentQty ,<br /> --b.ActualProductPrice Price,<br /> --b.EnquirySkuStates,<br /> --wh.WareHouseName<br />FROM RB_Procurement_Detail_SingleList a ( NOLOCK )<br /> INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID<br /> AND a.ID = b.ListID<br /> INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID<br /> AND c.SKU = b.SKU<br /> LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID<br /> LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID<br /> LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId<br /> AND d.SupplierId = a.SupplierID<br /> AND b.SKU = d.ProductSku<br /> LEFT JOIN ( SELECT ss.CustomerId ,<br /> ss.SupplierId ,<br /> ss.SingleListID ,<br /> ss.SKU ,<br /> SUM(ss.ShipmentQty) ShipmentQty<br /> FROM dbo.RB_Supplier_Shipment ss ( NOLOCK )<br /> GROUP BY ss.CustomerId ,<br /> ss.SupplierId ,<br /> ss.SingleListID,<br /> ss.SKU<br /> ) e ON e.CustomerId = a.CustomerID<br /> AND a.SupplierID = e.SupplierId<br /> AND e.SingleListID = b.ListID<br /> AND e.SKU = b.SKU<br />WHERE ISNULL(a.IsDelete, 0) = 0<br /> AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0<br /><span style="font-size:13px;"><span> </span>AND a.CustomerID = 1</span><br /> AND a.SupplierID = 16339 AND a.StepState =9 and a.AddTime &gt;= '2018-01-01 00:00:00' and b.ActualBuyNum != ISNULL(e.ShipmentQty,0) ) AS PagerTable<br /><span style="font-size:13px;"> </span><br /><span style="font-size:13px;"><span> </span>--',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'</span></p>
    012- <p>exec sp_executesql N'SELECT COUNT(1) FROM ( SELECT a.P_Code ,<br /> a.ID SingleListID ,<br /> a.Single_NO ,<br /> a.Memo,<br /> b.Id SingleListDetailId ,<br /> b.DetailID ProcurementDetailID ,<br /> d.SupplyCode ,<br /> b.SKU ,<br /> c.ClientSKU,<br /> c.ImageUrl ,<br /> c.ProductName ,<br /> c.ProductNameCN ,<br /> a.AddTime OrderTime ,<br /> b.ActualBuyNum ,<br /> e.ShipmentQty ,<br /> b.ActualProductPrice Price,<br /> b.EnquirySkuStates,<br /> wh.WareHouseName<br />FROM RB_Procurement_Detail_SingleList a ( NOLOCK )<br /> INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID<br /> AND a.ID = b.ListID<br /> INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID<br /> AND c.SKU = b.SKU<br /> LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID<br /> LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID<br /> LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId<br /> AND d.SupplierId = a.SupplierID<br /> AND b.SKU = d.ProductSku<br /> LEFT JOIN ( SELECT ss.CustomerId ,<br /> ss.SupplierId ,<br /> ss.SingleListID ,<br /> ss.SKU ,<br /> SUM(ss.ShipmentQty) ShipmentQty<br /> FROM dbo.RB_Supplier_Shipment ss ( NOLOCK )<br /> GROUP BY ss.CustomerId ,<br /> ss.SupplierId ,<br /> ss.SingleListID,<br /> ss.SKU<br /> ) e ON e.CustomerId = a.CustomerID<br /> AND a.SupplierID = e.SupplierId<br /> AND e.SingleListID = b.ListID<br /> AND e.SKU = b.SKU<br />WHERE ISNULL(a.IsDelete, 0) = 0<br /> AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0<br /><span> </span>AND a.CustomerID = 1<br /> AND a.SupplierID = 16339 AND a.StepState =9 and a.AddTime &gt;= @StartTime and b.ActualBuyNum != ISNULL(e.ShipmentQty,0) ) AS PagerTable',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'<br /></p>
    012+ <p>exec sp_executesql N'SELECT COUNT(1) FROM ( SELECT a.P_Code ,<br /> a.ID SingleListID ,<br /> a.Single_NO ,<br /> a.Memo,<br /> b.Id SingleListDetailId ,<br /> b.DetailID ProcurementDetailID ,<br /> d.SupplyCode ,<br /> b.SKU ,<br /> c.ClientSKU,<br /> c.ImageUrl ,<br /> c.ProductName ,<br /> c.ProductNameCN ,<br /> a.AddTime OrderTime ,<br /> b.ActualBuyNum ,<br /> e.ShipmentQty ,<br /> b.ActualProductPrice Price,<br /> b.EnquirySkuStates,<br /> wh.WareHouseName<br />FROM RB_Procurement_Detail_SingleList a ( NOLOCK )<br /> INNER JOIN RB_Procurement_Detail_SingleList_Detail b ( NOLOCK ) ON b.CustomerID = a.CustomerID<br /> AND a.ID = b.ListID<br /> INNER JOIN dbo.RB_Product c ( NOLOCK ) ON a.CustomerID = c.CustomerID<br /> AND c.SKU = b.SKU<br /> LEFT JOIN RB_Procurement_List pl(NOLOCK) ON a.P_Code=pl.P_Code AND a.CustomerID=pl.CustomerID<br /> LEFT JOIN RB_WareHouse wh(NOLOCK) ON pl.WareHouseID=wh.ID AND pl.CustomerID=wh.CustomerID<br /> LEFT JOIN dbo.RB_Supplier_Product_Profile d ON a.CustomerID = d.CustomerId<br /> AND d.SupplierId = a.SupplierID<br /> AND b.SKU = d.ProductSku<br /> LEFT JOIN ( SELECT ss.CustomerId ,<br /> ss.SupplierId ,<br /> ss.SingleListID ,<br /> ss.SKU ,<br /> SUM(ss.ShipmentQty) ShipmentQty<br /> FROM dbo.RB_Supplier_Shipment ss ( NOLOCK )<br /> GROUP BY ss.CustomerId ,<br /> ss.SupplierId ,<br /> ss.SingleListID,<br /> ss.SKU<br /> ) e ON e.CustomerId = a.CustomerID<br /> AND a.SupplierID = e.SupplierId<br /> AND e.SingleListID = b.ListID<br /> AND e.SKU = b.SKU<br />WHERE ISNULL(a.IsDelete, 0) = 0<br /> AND c.DeleteStatus = 0 AND ISNULL(b.EnquirySkuStates,0)=0<br /><span> </span>AND a.CustomerID = 1<br /> AND a.SupplierID = 16339 AND a.StepState =9 and a.AddTime &gt;= @StartTime and b.ActualBuyNum != ISNULL(e.ShipmentQty,0) ) AS PagerTable',N'@StartTime nvarchar(50)',@StartTime=N'2018-01-01 00:00:00'</p>

    经过查询发现这个sql语句是供应商门户那边的功能:

  4. 2022-05-25 16:35:16, 由 程伟 指派给 唐飞飞。
    修改了 指派给,旧值为 "chengwei",新值为 "tangfeifei"。

    5月31号 完成

    在分页查询里面取消的查询字段,如果页面必须要显示出来,则可以再写一个查询。使用分页查询出来的主键ID,去查询那些分页查询里面取消的字段,根据主键ID去查询的话,速度应该很快的

  5. 2022-05-27 17:56:29, 由 唐飞飞 完成。
    修改了 总计消耗,旧值为 "0",新值为 "1"。
    修改了 指派给 ,旧值为 "tangfeifei",新值为 "chenshaojun"。
    修改了 实际完成,旧值为 "",新值为 "2022-05-27 17:35:24"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2022-05-27 17:56:29"。
    修改了 预计剩余,旧值为 "2",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "tangfeifei"。
    上传了附件 分页查询数据.sql,统计总数.sql

    优化方案:

       拆分分页查询时查询数据总数和数据详情

    优化后的解决效果:

        


  6. 2022-07-16 17:09:17, 由 zhengqiao 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "chenshaojun",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "zhengqiao"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2022-07-16 17:09:17"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 系统管理部 - 系统服务优化
所属模块 /
相关需求 暂无
指派给 Closed 于 2022-07-16 17:09:17
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给 刘灿 黄金龙 胡晓龙
由谁创建 陈少军 于 2022-05-04 12:00:05
由谁完成 唐飞飞 于 2022-05-27 17:35:24
由谁取消 暂无
由谁关闭 zhengqiao 于 2022-07-16 17:09:17
关闭原因 已完成
最后编辑 zhengqiao 于 2022-07-16 17:09:17
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 0工时
总计消耗 1工时
预计剩余 0工时
预计开始 2022-05-04
实际开始 2022-05-27
截止日期 2022-05-11