如何找出最佳化器為特定查詢選擇的訪問路徑?


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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.