如何找出优化器为特定查询选择的访问路径?
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 列告诉我们数据是否可以从索引本身获取。
广告