DB2如何找出优化程序为特定查询选择的访问路径?

DB2优化器在数据库的整体性能中起着重要作用。优化器为每个查询选择最佳访问路径,通过该路径可以从数据库中获取数据。它标识要遵循的索引,查询谓词等。

优化器自动选择访问路径,我们可以使用EXPLAIN DB2命令轻松找到访问路径。我们必须首先设置查询号,然后通过三个简单的步骤提供SQL查询以找出其访问路径。

例如,

我们有一个DB2 ORDERS表,并且我们想检查在ORDER_DATE列上有一个谓词的SELECT查询。

步骤1:执行以下EXPLAIN命令并设置查询编号,然后在下面设置SELECT查询广告。

示例

EXPLAIN PLAN SET QUERYNO=23445 FOR
SELECT ORDER_ID FROM ORDERS WHERE ORDER_DATE = ‘12-08-2020’

步骤2:上述EXPLAIN命令将使用相关查询更新PLAN表,并说明详细信息。执行以下命令以查看PLAN表中的详细信息。

示例

SELECT * FROM PLAN_TABLE WHERE QUERYNO = 23445

步骤3:以上查询的结果将提供以下详细信息。

  • 访问类型

  • 比赛

  • 存取名称

  • 指数

ACCESTYPE列包含访问方法的详细信息,例如索引扫描,仅索引扫描等。MATCHCOLS列存储用于索引扫描的索引键的数量。ACCESSNAME列存储用于索引扫描的索引的名称,而INDEXONLY列告诉我们是否可以从索引本身获取数据。

猜你喜欢