我如何使用DB2 Explain?

时间:2009-07-08 15:26:32

标签: sql db2 query-optimization explain

如何使用DB2的Explain功能? - 既可以运行它,也可以用它来优化查询。有没有更好的DB2工具?

我之前已经建立过查询,但是我必须告诉他们需要花多长时间的唯一方法就是运行它们并计算时间 - 这几乎不是理想的。

编辑: 我的答案原来是“你不能。你没有,也无法获得访问权限。”你不喜欢官僚主义吗?

4 个答案:

答案 0 :(得分:18)

您正在寻找的内容由两个DB2实用程序涵盖:

  1. explain utility,显示优化程序的访问计划和特定查询的估算成本(基于当前的RUNSTATS统计信息)
  2. design advisor,建议进行结构更改以提高一个或多个查询的效果
  3. 两个实用程序都需要在数据库中创建专门的tables

    我倾向于使用explain实用程序而不是顾问程序,特别是如果我能够更改查询的SQL以影响更好的访问计划。我使用db2expln命令行实用程序来解释我正在调整的查询的不同版本并比较它们的成本。最重要的是,在运行explain或设计顾问时,您的表和索引统计信息是最新的。

答案 1 :(得分:10)

IBM提供Data Studio作为基于eclipse构建的免费工具,其中包括用于运行可视化解释的GUI,以及通过查询顾问提供调优帮助。 我强烈建议您使用Data Studio。

通过右键单击连接的数据源并选择

,设置正确的资源(需要构建的解释表以及需要完成的绑定)相对容易

分析和调整>配置调整>引导配置。

enter image description here

生成解释图 - 只需突出显示您的查询,右键单击,然后选择“打开Visual Explain”:

enter image description here

要使用查询顾问,请选择“开始调整”。它将引导您完成一个过程,该过程将生成解释,并建议它可以确定的任何调整机会。

enter image description here

答案 2 :(得分:6)

db2expln -database sample -t -g -f“sql query”

这对我来说很好。

答案 3 :(得分:3)

我总是发现从命令行运行解释权限,打开'-g'模式帮我查明问题。

我现在不记得这些选项了,IIRC,db2expln对排序有点挑剔{即你不能在密码后输入用户名!!} - 但效果很好。