gpt4 book ai didi

sql - 存储过程执行计划 - 数据操作

转载 作者:行者123 更新时间:2023-12-02 09:01:59 25 4
gpt4 key购买 nike

我有一个处理大量数据的存储过程(在本例中大约有 500 万行)。性能差异很大。我曾见过该进程在短短 15 分钟内运行,也曾见过它运行长达 4 小时。

为了维护,并验证逻辑和处理是否正确,我们将 SP 分为几个部分:

  1. 截断并填充工作表(已索引),我们稍后可以使用自动化测试工具进行验证。

  2. 将多个表格(包括其中一些工作表)连接在一起以生成另一个工作表

重复 1 和/或 2,直到产生最终输出。

我担心的是,这是一个单一的 SP,因此在第一次运行时会得到一个执行计划(甚至WITH RECOMPILE)。但此时,工作表(工作模式中的永久表)是空的。

我担心,无论采用何种索引方案,执行计划都会很差。

我正在考虑分解 SP 并从其中调用单独的 SP,以便它们可以在构建工作表中的数据后利用重新评估的执行计划。我还看到了有关使用 EXEC 运行动态 SQL 的引用,显然这也可能会得到 RECOMPILE

我仍在尝试获得 SHOWPLAN 权限,所以我的飞行非常盲目。

最佳答案

您能够确定是否存在任何锁定问题吗?您是否在足够小的事务中运行 SP?

将其分解为子过程应该没有任何好处。

有人应该关心您的工作效率,因为您在没有基本优化资源的情况下工作。这表明可能还存在其他可能的看不见的问题。

关于sql - 存储过程执行计划 - 数据操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/518988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com