问题描述
嗨,团队,
我在2个环境开发和坐有一张相同的表。两者具有相同的索引pptcode_1_3。
环境-开发
表名-pptcode
行数-103819
执行时间-9秒
当我在开发上运行执行计划时,它会为select语句使用where条件完成表访问存储。
环境-SIT
表名-pptcode
57109的行数
执行时间-1秒
当我在SIT上运行执行计划时,它确实通过索引ROWID和索引范围扫描进行表访问
如何使查询在开发中使用索引并在1秒内运行。
我在2个环境开发和坐有一张相同的表。两者具有相同的索引pptcode_1_3。
环境-开发
表名-pptcode
行数-103819
执行时间-9秒
当我在开发上运行执行计划时,它会为select语句使用where条件完成表访问存储。
环境-SIT
表名-pptcode
57109的行数
执行时间-1秒
当我在SIT上运行执行计划时,它确实通过索引ROWID和索引范围扫描进行表访问
如何使查询在开发中使用索引并在1秒内运行。
专家解答
您可以在代码中添加一个提示来强制索引,但是从您提供的数据来看,这些表显然在每个环境中都有不同的数据,所以我不确定是否有理由强制使用相同的计划。
这真的取决于你的要求:
-如果您想为每个环境制定最佳计划,请确保您的统计数据取决于每个环境中的数据
-如果您希望开发人员为执行计划匹配SIT,请查看导出/导入架构级别优化器统计信息。你会得到类似的计划,但由于数据不同,你可能会得到不同的响应时间特征。
-如果您想从SIT锁定计划并迫使Dev采取该计划,请查看SQL plan Management以从SIT获取计划并将其导入Dev。
这真的取决于你的要求:
-如果您想为每个环境制定最佳计划,请确保您的统计数据取决于每个环境中的数据
-如果您希望开发人员为执行计划匹配SIT,请查看导出/导入架构级别优化器统计信息。你会得到类似的计划,但由于数据不同,你可能会得到不同的响应时间特征。
-如果您想从SIT锁定计划并迫使Dev采取该计划,请查看SQL plan Management以从SIT获取计划并将其导入Dev。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




