Professional Documents
Culture Documents
openSAP Hanasql1 Week 1 Unit 5 SQLARC Presentation
openSAP Hanasql1 Week 1 Unit 5 SQLARC Presentation
SQL
Front End
Plan cache entry found
SQL Optimizer
Plan
Execution
Engines
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
SQL Front
End
SQL
Optimizer
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
SQL Front
End
SQL
Optimizer
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front
End
SQL
Optimizer
Cost-Based
Query
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front
End
SQL
Optimizer
Cost-Based
Query
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front
End
SQL
Optimizer
Cost-Based
Query
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache G T2 T4
Rule-Based
Optimization J13
SQL Front
End
G T3
SQL
Optimizer
T1
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache G T2 T4
Rule-Based
Optimization J13
SQL Front
End
G F Filter Pushdown
SQL
Optimizer
T1 T3
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache Simplify G T2 T4
Rule-Based Group By
Optimization J13
SQL Front
End
G F
SQL
Optimizer
T1 T3
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache JG
13 T2 T4
Rule-Based
Optimization
SQL Front G F
End
SQL T1 T3
Optimizer
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache JG
13
Rule-Based
Optimization
SQL G F
Frontend
SQL T1 T3
Optimizer
REWRITE TREE
Cost-Based
Query
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front
End
SQL
Optimizer
Cost-Based
Query
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front
End
SQL
Optimizer
Cost-Based
Query
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front
End
SQL
*The tree from the rule-based
Optimizer
optimization is sent to cost-based
query optimization
Cost-Based
Query
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front
End
SQL
Optimizer
_THRU_
&
PRE_BEFORE_
Cost-Based
Query
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front
End
SQL
Optimizer
_THRU_
&
PRE_BEFORE_
Cost-Based
Query
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front Plan 3
End
SQL
Optimizer
_THRU_
&
Cost-Based
Query PRE_BEFORE_
Optimization
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front Plan 3
End
SQL
Optimizer
Plan 4
_THRU_
Cost-Based
Query &
Optimization PRE_BEFORE_
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front Plan 3
End
SQL
Optimizer
Plan 4
Cost-Based
Query _THRU_ Plan 5
Optimization
&
PRE_BEFORE_
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
A_THRU_B PREA_BEFORE_B
Optimization
SQL Plan 3
Frontend
SQL
Optimizer
Plan 4
▪ AGGR_THRU_JOIN ▪ PREAGGR_BEFORE_JOIN
▪ JOIN_THRU_JOIN ▪ PREAGGR_BEFORE_UNION
Cost-Based
▪ JOIN_THRU_AGGR …
Query Plan 5
Optimization _THRU_
&
PRE_BEFORE_
Plan 6
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 22
SQL Optimizer – Architectural Overview
Plan 1
Final plan selection among alternatives
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front Plan 3
End
SQL
Optimizer
Plan 4
Cost-Based
Query Plan 5
Optimization
Plan 6
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 23
SQL Optimizer – Architectural Overview
Plan 1
Final plan selection among alternatives
SQL Plan
FROM TABLE3 E
INNE R JOIN ( SELECT F .COL1, F .COL2
FROM TAB LE4 F
GROUP BY F.COL1, F.COL2) G
ON E .COL2=G. COL2) H
ON B.CO L1 =H.CO L1) D ON A.COL2 = D.COL2
WHERE A.COL3 =20 WIT H HINT ( NO_USE_H EX_PLAN) ;
Cache
Rule-Based
Optimization
SQL Front
End
SQL
Optimizer
Plan 4
Cost-Based
Query Plan 5
Optimization
Plan 3 Plan 6
© 2020 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 24
Thank you.
Contact information:
open@sap.com
Follow all of SAP
www.sap.com/contactsap