2012-09-06 79 views
1

我已經使用db2exfmt實用程序爲查詢生成了一個訪問計劃,但我無法理解。DB2 Access計劃的說明圖

請任何人都可以解釋我的訪問計劃(像什麼括號中的數字意味着,/ ----- + ------ \等)

Access Plan: 
    ----------- 
    Total Cost: 15.1619 
    Query Degree: 1 

      Rows 
     RETURN 
     ( 1) 
      Cost 
      I/O 
      | 
      3 
     HSJOIN 
     ( 2) 
     15.1619 
      2 
    /-----+------\ 
    4    3 
TBSCAN   TBSCAN 
( 3)   ( 4) 
7.58097   7.58036 
    1    1 
    |    | 
    4    3 
TABLE: DB2INST1 TABLE: DB2INST1 
    TABA    TABB 
    Q2    Q1 

回答

5

從下往上讀吧。每個節點都是爲滿足查詢而完成的操作。 TBSCAN意味着整個表格都會被掃描(這通常會在您的表格很小時發生)。 HSJOIN是一個'哈希連接' - 用哈希映射從內存中的兩個表中連接行。

讓我們來看看一個節點

  4 
     TBSCAN 
     ( 3) 
     7.58097 
      1 
      | 
      4 
    TABLE: DB2INST1.TABA 

頂「4」是行數返回 下一行「TBSCAN」所使用的算法(TBSCAN意指表掃描。HSJOIN指HashMap中加入) 。在DB2中,這稱爲'操作員' '(3)'是序列號。你可以發現這個查詢分解成4個步驟 7.58097是執行這個查詢到這個步驟的累積成本,在一個叫timerons的東西里。它根據數據庫配置的方式進行調整,優化器將選擇一個可最大限度降低此成本的訪問計劃。 最底層的4是操作的I/O成本。

db2exfmt中有更多的信息被省略。但該圖告訴您DB2將如何執行查詢。