[步骤]
http://666.zhcxkj.com/Manager/index.aspx环境 渠道产品销量报表V2 日表、月报、年表默认查询超时[结果]



[期望]
正常查询1. 问题分析:
此sql 查询是 count(), 去掉其他字段,只保留第1个字段,
测试优化前需60秒,优化后8秒查询出结果
2. 解决方案:
去掉 select 查询的其他字段,保留 B.ImageUrl字段,
SELECT Count(1)
FROM (SELECT
B.ImageUrl
--D.OrderSourceName,
--A.SKU
--B.ClientSKU,
--B.ProductGroupSKU,A.OrderSourceSKU,
--Sum(A.SalesNum) SalesNum,
--Sum(A.OrderNum) OrderNum,
--C.WareHouseType,
--B.ProductNameCN,
--Cast(A.SalesYear AS varchar) + RIGHT('00' + Cast(A.SalesMonth AS varchar), 2) DateFormat
FROM RB_Report_OrderSourceSKUMonth A WITH(NOLOCK)
LEFT JOIN RB_Product B WITH(NOLOCK)
ON A.CustomerID = B.CustomerID
AND A.SKU = B.SKU
LEFT JOIN RB_WareHouse C WITH ( NOLOCK )
ON C.ID = A.WareHouseID
AND C.CustomerID = A.CustomerID
LEFT JOIN RB_OrderSource AS D WITH ( NOLOCK )
ON A.OrderSourceID = D.ID
AND A.CustomerID = D.CustomerID
WHERE A.CustomerID = 1
AND A.SalesYear >= 2022
AND A.SalesYear <= 2022
AND A.SalesMonth >= 2
AND A.SalesMonth <= 2
GROUP BY B.ImageUrl,
D.OrderSourceName,
B.ProductGroupSKU,
A.SKU,
B.ClientSKU,
A.OrderSourceSKU,
C.WareHouseType,
B.ProductNameCN,
A.SalesYear,
A.SalesMonth,
A.OrderSourceSKU) AS PagerTable
--410114
--60 --》12秒
| 所属项目 | 技术中心-需求池 |
|---|---|
| 所属模块 | / |
| 所属迭代 | 【智汇创想】主干 1月第 2个版本(2022年) |
| Bug类型 | |
| 严重程度 | 提示 |
| 优先级 | P2 |
| Bug状态 | 已关闭 |
| 业务部门 | |
| 开发责任人 | |
| 测试责任人 | |
| 解决时效 | 0 |
| 激活次数 | 1 |
| 激活日期 | 2022-03-01 14:23:54 |
| 当前指派 | Closed 于 2022-04-28 14:57:19 |
| 截止日期 | 0000-00-00 |
| 上线时间 | |
| 上线时效 | |
| 关键词 | |
| 抄送给 | 胡晓龙 |
| 所属迭代 | 【智汇创想】主干 1月第 2个版本(2022年) |
|---|---|
| 相关需求 | |
| 相关任务 |
| 由谁创建 | 夏宇 于 2022-02-23 16:13:46 |
|---|---|
| 影响环境 |
577 |
| 由谁解决 | 陈少军 于 2022-04-28 13:51:19 |
| 解决版本 | 569 |
| 解决方案 | 性能问题 |
| 由谁关闭 | 夏宇 于 2022-04-28 14:57:19 |
| 最后修改 | 夏宇 于 2022-04-28 14:57:19 |
| 相关Bug |
|---|
日报非常快
月报偏慢
SQL:SELECT COUNT(1) FROM ( SELECT B.ImageUrl,
D.OrderSourceName,
A.SKU,
B.ClientSKU,
B.ProductGroupSKU,A.OrderSourceSKU,
Sum(A.SalesNum) SalesNum,
Sum(A.OrderNum) OrderNum,
C.WareHouseType,
B.ProductNameCN,
Cast(A.SalesYear AS varchar) + RIGHT('00' + Cast(A.SalesMonth AS varchar), 2) DateFormat
FROM RB_Report_OrderSourceSKUMonth A WITH(NOLOCK)
LEFT JOIN RB_Product B WITH(NOLOCK)
ON A.CustomerID = B.CustomerID
AND A.SKU = B.SKU
LEFT JOIN RB_WareHouse C WITH ( NOLOCK )
ON C.ID = A.WareHouseID
AND C.CustomerID = A.CustomerID
LEFT JOIN RB_OrderSource AS D WITH ( NOLOCK )
ON A.OrderSourceID = D.ID
AND A.CustomerID = D.CustomerID
Where A.CustomerID=@CustomerID AND A.SalesYear>=@AddTimeBegin AND A.SalesYear<=@AddTimeEnd
AND A.SalesMonth>=@BeginSalesMonth AND A.SalesMonth<=@EndSalesMonth GROUP BY B.ImageUrl,D.OrderSourceName,
B.ProductGroupSKU,A.SKU,B.ClientSKU,
A.OrderSourceSKU,C.WareHouseType,
B.ProductNameCN,A.SalesYear,A.SalesMonth,A.OrderSourceSKU ) AS PagerTable
PARAMS:@CustomerID = 1 ,@AddTimeBegin = 2022 ,@AddTimeEnd = 2022 ,@BeginSalesMonth = 2 ,@EndSalesMonth = 2 ,
年报偏慢些
@少军:帮忙看看有没优化的空间