任务描述

1.问题分析

    智能刊登 gaussdb 慢sql top 10,缺少索引,每天2000多次



2.解决方案


诊断成功
索引优化建议:
  1. 建议在数据表 irobotbox_marketpublish.P_Product_ProhibitionSaleMarket 的 Sku,CustomerId,SiteCodes,MarketId 列上添加如下索引,以提高查询性能:
    ALTER TABLE `irobotbox_marketpublish`.`P_Product_ProhibitionSaleMarket` ADD INDEX `idx_Sku_CustomerId_SiteCodes_MarketId` (`Sku`, `CustomerId`, `SiteCodes`, `MarketId`)
  2. 建议在数据表 irobotbox_marketpublish.Ap_AutoPublish_Ebay_AllSku 的 StrategyId,OrderSourceId,SiteCode,CustomerId,MarketId 列上添加如下索引,以提高查询性能:
    ALTER TABLE `irobotbox_marketpublish`.`Ap_AutoPublish_Ebay_AllSku` ADD INDEX `idx_StrategyId_OrderSourceId_SiteCode_CustomerId_MarketId` (`StrategyId`, `OrderSourceId`, `SiteCode`, `CustomerId`, `MarketId`)

注意:在业务高峰期,变更表结构存在风险,请谨慎操作!

语句优化建议:
  1. 条件中包含表达式或函数,查询会使用到临时表,将带来较差的性能。
  2. 发现IN表达式包含元素超过10,请慎用,因为元素过多会导致全表扫描。
  3. 使用`IS NULL`或`IS NOT NULL`将可能导致引擎放弃使用索引而进行全表扫描。
  4. 发现未使用`ORDER BY`的`LIMIT`查询`limit 0, 20000`,该用法会因查询执行计划不同而导致非确定性的结果。
  5. 最外层Select未指定Where条件,可能返回比预期更多的行。

 

历史记录  
  1. 2022-09-05 09:42:05, 由 陈少军 创建。
  2. 2022-09-05 09:42:23, 由 陈少军 指派给 胡笑锋。
    修改了 预计剩余,旧值为 "0",新值为 "1"。
    参考解决方案,创建索引
  3. 2022-09-06 19:30:50, 由 韦思成 编辑。
    修改了 任务描述,区别为:
    006-
    006+
    007-
    007+
    008- 诊断成功
    008+ 诊断成功
    009-
    009+
    010-
    010+
    011- 索引优化建议:
    011+ 索引优化建议:
    012- 建议在数据表irobotbox_marketpublish.P_Product_ProhibitionSaleMarket的Sku,CustomerId,SiteCodes,MarketId列上添加如下索引,以提高查询性能:
    012+ 建议在数据表irobotbox_marketpublish.P_Product_ProhibitionSaleMarket的Sku,CustomerId,SiteCodes,MarketId列上添加如下索引,以提高查询性能:
    014-
    014+
    015- 建议在数据表irobotbox_marketpublish.Ap_AutoPublish_Ebay_AllSku的StrategyId,OrderSourceId,SiteCode,CustomerId,MarketId列上添加如下索引,以提高查询性能:
    015+ 建议在数据表irobotbox_marketpublish.Ap_AutoPublish_Ebay_AllSku的StrategyId,OrderSourceId,SiteCode,CustomerId,MarketId列上添加如下索引,以提高查询性能:
    017-
    017+
    018- 注意:在业务高峰期,变更表结构存在风险,请谨慎操作!
    018+ 注意:在业务高峰期,变更表结构存在风险,请谨慎操作!
    019-
    019+
    020-
    020+
    021- 语句优化建议:
    021+ 语句优化建议:
    022- 条件中包含表达式或函数,查询会使用到临时表,将带来较差的性能。
    022+ 条件中包含表达式或函数,查询会使用到临时表,将带来较差的性能。
    023- 发现IN表达式包含元素超过10,请慎用,因为元素过多会导致全表扫描。
    023+ 发现IN表达式包含元素超过10,请慎用,因为元素过多会导致全表扫描。
    024- 使用`IS NULL`或`IS NOT NULL`将可能导致引擎放弃使用索引而进行全表扫描。
    024+ 使用`IS NULL`或`IS NOT NULL`将可能导致引擎放弃使用索引而进行全表扫描。
    025- 发现未使用`ORDER BY`的`LIMIT`查询`limit 0, 20000`,该用法会因查询执行计划不同而导致非确定性的结果。
    025+ 发现未使用`ORDER BY`的`LIMIT`查询`limit 0, 20000`,该用法会因查询执行计划不同而导致非确定性的结果。
    026- 最外层Select未指定Where条件,可能返回比预期更多的行。
    026+ 最外层Select未指定Where条件,可能返回比预期更多的行。
    027-
    027+
    028-
    028+
    029-
    006- <p>
    006+ <p><br /></p>
    007- </p><div class="ng-scope" style="margin:0px;padding:0px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">
    007+ <div class="ng-scope" style="margin:0px;padding:0px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">
    008- <div class="sql_tuning_result-1xbh7Z success_color-3y4Bxu" style="margin:0px;padding:0px;font-size:14px;font-weight:700;color:#3AC295;">诊断成功</div>
    008+ <div class="sql_tuning_result-1xbh7Z success_color-3y4Bxu" style="margin:0px;padding:0px;font-size:14px;font-weight:700;color:#3AC295;">诊断成功</div>
    009- </div>
    009+ </div>
    010- <div class="sql_tuning_advice-2VPFxf" style="margin:0px;padding:0px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">
    010+ <div class="sql_tuning_advice-2VPFxf" style="margin:0px;padding:0px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">
    011- <div class="sql_tuning_advice_title-3b3aBp" style="margin:10px 0px 5px;padding:0px;color:#FF8833;">索引优化建议:</div>
    011+ <div class="sql_tuning_advice_title-3b3aBp" style="margin:10px 0px 5px;padding:0px;color:#FF8833;">索引优化建议:</div>
    012- <ol class="ng-scope" style="margin-left:0px;"><li class="ng-binding ng-scope">建议在数据表<span class="warning_color-PMRVtN" style="color:#FF8833;">irobotbox_marketpublish.P_Product_ProhibitionSaleMarket</span>的<span class="warning_color-PMRVtN" style="color:#FF8833;">Sku,CustomerId,SiteCodes,MarketId</span>列上添加如下索引,以提高查询性能:
    012+ <ol class="ng-scope" style="margin-left:0px;"><li class="ng-binding ng-scope">建议在数据表<span class="warning_color-PMRVtN" style="color:#FF8833;">irobotbox_marketpublish.P_Product_ProhibitionSaleMarket</span>的<span class="warning_color-PMRVtN" style="color:#FF8833;">Sku,CustomerId,SiteCodes,MarketId</span>列上添加如下索引,以提高查询性能:
    014- </li>
    014+ </li>
    015- <li class="ng-binding ng-scope">建议在数据表<span class="warning_color-PMRVtN" style="color:#FF8833;">irobotbox_marketpublish.Ap_AutoPublish_Ebay_AllSku</span>的<span class="warning_color-PMRVtN" style="color:#FF8833;">StrategyId,OrderSourceId,SiteCode,CustomerId,MarketId</span>列上添加如下索引,以提高查询性能:
    015+ <li class="ng-binding ng-scope">建议在数据表<span class="warning_color-PMRVtN" style="color:#FF8833;">irobotbox_marketpublish.Ap_AutoPublish_Ebay_AllSku</span>的<span class="warning_color-PMRVtN" style="color:#FF8833;">StrategyId,OrderSourceId,SiteCode,CustomerId,MarketId</span>列上添加如下索引,以提高查询性能:
    017- </li>
    017+ </li>
    018- </ol><p class="mt5 ng-binding ng-scope">注意:在业务高峰期,变更表结构存在风险,请谨慎操作!</p>
    018+ </ol><p class="mt5 ng-binding ng-scope">注意:在业务高峰期,变更表结构存在风险,请谨慎操作!</p>
    019- </div>
    019+ </div>
    020- <div class="sql_tuning_advice-2VPFxf" style="margin:0px;padding:0px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">
    020+ <div class="sql_tuning_advice-2VPFxf" style="margin:0px;padding:0px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">
    021- <div class="sql_tuning_advice_title-3b3aBp" style="margin:10px 0px 5px;padding:0px;color:#FF8833;">语句优化建议:</div>
    021+ <div class="sql_tuning_advice_title-3b3aBp" style="margin:10px 0px 5px;padding:0px;color:#FF8833;">语句优化建议:</div>
    022- <ol class="ng-scope" style="margin-left:0px;"><li class="ng-binding ng-scope">条件中包含表达式或函数,查询会使用到临时表,将带来较差的性能。</li>
    022+ <ol class="ng-scope" style="margin-left:0px;"><li class="ng-binding ng-scope">条件中包含表达式或函数,查询会使用到临时表,将带来较差的性能。</li>
    023- <li class="ng-binding ng-scope">发现IN表达式包含元素超过10,请慎用,因为元素过多会导致全表扫描。</li>
    023+ <li class="ng-binding ng-scope">发现IN表达式包含元素超过10,请慎用,因为元素过多会导致全表扫描。</li>
    024- <li class="ng-binding ng-scope">使用`IS NULL`或`IS NOT NULL`将可能导致引擎放弃使用索引而进行全表扫描。</li>
    024+ <li class="ng-binding ng-scope">使用`IS NULL`或`IS NOT NULL`将可能导致引擎放弃使用索引而进行全表扫描。</li>
    025- <li class="ng-binding ng-scope">发现未使用`ORDER BY`的`LIMIT`查询`limit 0, 20000`,该用法会因查询执行计划不同而导致非确定性的结果。</li>
    025+ <li class="ng-binding ng-scope">发现未使用`ORDER BY`的`LIMIT`查询`limit 0, 20000`,该用法会因查询执行计划不同而导致非确定性的结果。</li>
    026- <li class="ng-binding ng-scope">最外层Select未指定Where条件,可能返回比预期更多的行。</li>
    026+ <li class="ng-binding ng-scope">最外层Select未指定Where条件,可能返回比预期更多的行。</li>
    027- </ol></div>
    027+ </ol></div>
    028-
    028+ <p></p>
    029- <p></p>
    已添加任务描述中的两个索引
  4. 2022-09-07 09:28:52, 由 陈少军 指派给 韦思成。
    修改了 指派给,旧值为 "huxiaofeng",新值为 "weisicheng"。
    参考解决方案创建索引
  5. 2022-09-07 13:38:49, 由 韦思成 完成。
    修改了 总计消耗,旧值为 "0",新值为 "1"。
    修改了 指派给 ,旧值为 "weisicheng",新值为 "chenshaojun"。
    修改了 实际完成,旧值为 "",新值为 "2022-09-07 13:38:40"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2022-09-07 13:38:49"。
    修改了 预计剩余,旧值为 "1",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "weisicheng"。
    已经创建完成
  6. 2023-10-31 14:53:14, 由 周杰 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "chenshaojun",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "zhoujie"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2023-10-31 14:53:14"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 系统管理部 - 系统服务优化
所属模块 /
相关需求 暂无
指派给 Closed 于 2023-10-31 14:53:14
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给 韦思成
由谁创建 陈少军 于 2022-09-05 09:42:05
由谁完成 韦思成 于 2022-09-07 13:38:40
由谁取消 暂无
由谁关闭 周杰 于 2023-10-31 14:53:14
关闭原因 已完成
最后编辑 周杰 于 2023-10-31 14:53:14
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 0工时
总计消耗 1工时
预计剩余 0工时
预计开始 2022-09-05
实际开始 2022-09-07
截止日期 2022-09-09