如何找出最佳化器為特定查詢選擇的訪問路徑?
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 列告訴我們資料是否可以從索引本身獲取。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP