oracle存儲過程執(zhí)行計(jì)劃提供了執(zhí)行信息,包括訪問路徑、估計(jì)行數(shù)、連接順序和成本。要查看執(zhí)行計(jì)劃,請執(zhí)行 explain plan 命令,查找“執(zhí)行計(jì)劃”部分。執(zhí)行計(jì)劃包含表頭和正文,詳細(xì)顯示id、操作類型、行數(shù)、成本、訪問路徑、篩選條件、涉及的表和索引,以及如有連接時(shí)的連接順序。
Oracle 存儲過程執(zhí)行計(jì)劃的查看
Oracle 存儲過程執(zhí)行計(jì)劃提供了有關(guān)存儲過程執(zhí)行方式的詳細(xì)見解,包括:
訪問路徑: 用于訪問數(shù)據(jù)的路徑,例如表掃描或索引查找
估計(jì)行數(shù): 對于每個(gè)訪問路徑估計(jì)要處理的行數(shù)
連接順序: 存儲過程中連接執(zhí)行的順序
成本: 執(zhí)行計(jì)劃的估算成本
查看執(zhí)行計(jì)劃的步驟:
- 執(zhí)行 EXPLAIN PLAN 命令:
<code class="sql">EXPLAIN PLAN FOR ;</code>
登錄后復(fù)制
- 查找“執(zhí)行計(jì)劃”部分:
結(jié)果中包含“執(zhí)行計(jì)劃”部分,其中詳細(xì)顯示執(zhí)行計(jì)劃。
理解執(zhí)行計(jì)劃:
表頭:
ID: 訪問路徑的 ID
Operation: 操作類型,例如表掃描或索引查找
Rows: 估計(jì)的行數(shù)
Cost: 估計(jì)的成本
正文:
Access Path: 用于訪問數(shù)據(jù)的路徑
Filter: 應(yīng)用于數(shù)據(jù)的任何篩選條件
Tables: 涉及的表
Index: 如果使用,則使用的索引
CONNECT BY: 如果存儲過程包含連接,則顯示連接順序
示例執(zhí)行計(jì)劃:
<code class="sql">EXPLAIN PLAN FOR get_customer_orders; ID | Operation | Rows | Cost ----|----------------------------------------|-------|----- 0 | SELECT STATEMENT | 1000 | 100 1 | TABLE ACCESS FULL | 1000 | 100 | ORDER_HDR |</code>
登錄后復(fù)制
此執(zhí)行計(jì)劃表明:
存儲過程 get_customer_orders
將訪問 ORDER_HDR
表。
訪問路徑是一個(gè)表掃描,這意味著將掃描整個(gè)表。
估計(jì)行數(shù)為 1000,估計(jì)成本為 100。