DB2-Abfrageoptimierung – db2expln

Db2expln analysiert den Zugriffspfad für eine bestimmte DB2-Abfrage.

Verwenden Sie db2expln für die DB2-Abfrageoptimierung. Sobald Sie eine langsam laufende Abfrage identifiziert haben, die einen Engpass verursacht, verwenden Sie diesen Prozess, um den Zugriffspfad zu analysieren.

Ein syntaktisches Beispiel:

db2expln -d books -f myquery.sql -z \; -g -o explain.txt

-d <db>
-f <explain datei>

-z terminierender Zeilenende Charakter

-g Rekonstruiert das ursprüngliche Plandiagramm des Optimierers (wie von Visual Explain präsentiert)

-o Name der Ausgabedatei

Die Datei myquery.sql enthält den folgenden Inhalt:

select * from books where publisher_id <6

 

db2expln -d books -f myquery.sql -z \; -g -o explain.txt

DB2 Universal Database Version 11.5, 5622-044 (c) Copyright IBM Corp. 1991, 2017
Licensed Material – Program Property of IBM
IBM DB2 Universal Database SQL and XQUERY Explain ToolOutput is available in "explain.txt".

Der Output für meine Abfrage ist wie folgt:

 DB2 Universal Database Version 11.5, 5622-044 (c) Copyright IBM Corp. 1991, 2017

Licensed Material – Program Property of IBM

IBM DB2 Universal Database SQL and XQUERY Explain Tool

 

******************** DYNAMIC ***************************************

 

==================== STATEMENT ==========================================

 

        Isolation Level          = Cursor Stability

        Blocking                 = Block Unambiguous Cursors

        Query Optimization Class = 5

 

        Partition Parallel       = No

        Intra-Partition Parallel = No

 

        SQL Path                 = "SYSIBM", "SYSFUN", "SYSPROC", "SYSIBMADM",

                                   "DB2INST1"

 

 

Statement:

 

  select *

  from books

  where publisher_id <6

 

 

Section Code Page = 1208

 

Estimated Cost = 116,269806

Estimated Cardinality = 313,439789

 

Access Table Name = DB2INST1.BOOKS  ID = 2,6

|  Index Scan:  Name = SYSIBM.SQL210601170042110  ID = 1

|  |  Regular Index (Not Clustered)

|  |  Index Columns:

|  |  |  1: BOOK_ID (Ascending)

|  #Columns = 7

|  Skip Inserted Rows

|  Avoid Locking Committed Data

|  Currently Committed for Cursor Stability

|  Evaluate Predicates Before Locking for Key

|  #Key Columns = 0

|  |  Start Key: Beginning of Index

|  |  Stop Key: End of Index

|  Data Prefetch: Sequential(0), Readahead

|  Index Prefetch: Sequential(7), Readahead

|  Lock Intents

|  |  Table: Intent Share

|  |  Row  : Next Key Share

|  Sargable Predicate(s)

|  |  #Predicates = 1

|  |  Return Data to Application

|  |  |  #Columns = 7

Return Data Completion

 

End of section

 

 

Optimizer Plan:

 

                Rows

              Operator

                (ID)

                Cost

 

               313,44

               RETURN

                ( 1)

               116,27

                 |

               313,44

               FETCH

                ( 2)

               116,27

              /      \

        1091           1091

       IXSCAN        Table:

        ( 3)         DB2INST1

       47,6554       BOOKS

         |

        1091

 Index:

 SYSIBM

 SQL210601170042110

 

 

 
Dieser Beitrag wurde unter DB2 veröffentlicht. Setze ein Lesezeichen auf den Permalink.