Download presentation
Presentation is loading. Please wait.
Published byMiles Nicholson Modified over 9 years ago
1
Dive into the Query Optimizer Dive into the Query Optimizer: Undocumented Insight Benjamin Nevarez Blog: benjaminnevarez.com Twitter: @BenjaminNevarez
2
About the Speaker Benjamin Nevarez Author of “Inside the SQL Server Query Optimizer” and “SQL Server 2014 Query Tuning & Optimization” SQL Server 2012 Internals Working with SQL Server for 15 years PASS Summit/SQL Server Connections speaker
3
Dive into the Query Optimizer SQL is a high-level declarative language
4
Dive into the Query Optimizer Query processing steps
5
Dive into the Query Optimizer The Optimization Process Parsing / Binding (before optimization) Simplification Initial set of Join Orders Trivial Plan Optimization Phases search 0 search 1 search 2
6
Parsing / Binding Parsing first makes sure that the T-SQL query has a valid syntax Binding is mostly concerned with name resolution Uses the query information to build a tree of relational operators
7
Demo Logical Trees
8
Simplification Reduces the query tree into a simpler form in order to make the optimization process easier Some of the simplifications include: Redundant inner and outer joins may be removed. A typical example is the Foreign Key Join elimination Filters in WHERE clauses are pushed down in the query tree in order to enable early data filtering (predicate pushdown) Contradictions are detected and remove
9
Demo Simplification
10
Transformation Rules Used to explore the search space Exploration rules (logical transformation rules) Generate logical equivalent alternatives Commutativity A join B – > B join A Associativity (A join B) join C – > A join (B join C) Implementation rules (physical transformation rules) Obtain physical alternatives Join to Sort Merge Join A join B – > A Merge Join B
11
Transformation Rules Applying transformations does not necessarily reduce the cost of the generated alternatives Cost will be estimated later (only physical alternatives are costed)
12
Demo Transformation Rules
13
The Memo Search data structure that is used to store the alternatives which are generated and analyzed by the Query Optimizer A new memo structure is created for each optimization The Query Optimizer copies the original query tree's logical expressions into the memo structure
14
The Memo After Optimization
15
Demo The Memo
16
Optimization Phases – Full Optimization Search 0, Transaction Processing phase Search 1, Quick Plan phase Search 2, Full Optimization
17
Demo The Optimization Phases
18
Dive into the Query Optimizer Thank You!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.