SQL*_*IKE 1 sql-server execution-plan timeout
我们的系统通过大量测试生成 SQL。我怀疑在某些情况下,找到理想的执行计划需要很长时间。所以 SQL 只选择它迄今为止找到的最好的计划,然后需要很长时间才能运行。是否可以增加 SQL 搜索最佳计划的时间?
有一些未记录的跟踪标志允许增加或删除优化器在确定是否找到“足够好”的计划时使用的一些限制。
但是,我所见过的所有结果都表明,使用这些标志时,计划质量仅得到最低限度的改善,如果有的话。 存在超时和限制是有充分理由的。您几乎肯定最好以某种方式将这些查询分成更小的块(来自 Erik Darling 的关于该主题的精彩 YouTube 视频),以使优化器更易于管理以进行选择。
此外,这些跟踪标志是未记录的。因此,如果您确实使用此方法找到了更好的计划(在测试系统上!),您应该尝试使用传统方法获得该计划,例如:
我知道的跟踪标志可以在查询级别启用,如下所示:
/* your query here */
OPTION
(
QUERYTRACEON 8780,
QUERYTRACEON 8671
)
Run Code Online (Sandbox Code Playgroud)
参考:
归档时间: |
|
查看次数: |
75 次 |
最近记录: |