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


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

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

更新于: 2020-11-30

256 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告