gpt4 book ai didi

sql - 执行计划成本估算

转载 作者:行者123 更新时间:2023-12-02 05:35:41 26 4
gpt4 key购买 nike

有一个问题,我必须根据特定条件更新包含数百万条记录的表。我编写了一个很长的 shell 脚本和 SQL 语句来完成它。为了检查性能,我计划使用解释计划,从 http://docs.oracle.com/cd/B10500_01/server.920/a96533/ex_plan.htm#19259 学习它

这里写到“执行计划可能因以下原因而不同:”不同的成本->数据量和统计绑定(bind)变量类型初始化参数 - 在全局或 session 级别设置

这里我不明白初始化参数 - 在全局或 session 级别设置如何影响执行计划。谁能解释一下?除了解释计划或自动跟踪之外,还有什么其他方法可以检查 SQL 语句的性能。

最佳答案

有几个(初始化)参数可以影响语句的执行计划。立即想到的是 OPTIMIZER_MODE

其他不太明显的 session 是可能影响索引可用性的 NLS 设置。

获取真实执行计划的另一种方法(除了跟踪 session 和使用 tkprof 之外)是使用 /*+ gather_plan_statistics */ 提示和“dbms_xplan.display_cursor()”。

这是通过首先使用上述提示实际运行语句来完成的(因此这确实比“正常”解释花费的时间更长):

select /*+ gather_plan_statistics */ * 
from some_table
join ...
where ...

然后在该语句完成后,您可以使用 dbms_xplan 检索使用的计划:

SELECT * 
FROM table(dbms_xplan.display_cursor(format => 'ALLSTATS LAST');

关于sql - 执行计划成本估算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11753919/

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