Upload
ona
View
66
Download
3
Embed Size (px)
DESCRIPTION
Dive into the Query Optimizer. Dive into the Query Optimizer: Undocumented Insight Benjamin Nevarez Blog: benjaminnevarez.com Twitter: @ BenjaminNevarez. About the Speaker Benjamin Nevarez. Author of “Inside the SQL Server Query Optimizer ” and “SQL Server 2014 Query Tuning - PowerPoint PPT Presentation
Citation preview
Dive into the Query Optimizer
Dive into the Query Optimizer: Undocumented Insight
Benjamin NevarezBlog: benjaminnevarez.comTwitter: @BenjaminNevarez
About the SpeakerBenjamin 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
Dive into the Query Optimizer
SQL is a high-level declarative language
Dive into the Query Optimizer
Query processing steps
Dive into the Query Optimizer
The Optimization Process
Parsing / Binding (before optimization)SimplificationInitial set of Join OrdersTrivial PlanOptimization Phases search 0search 1search 2
Parsing / Binding
Parsing first makes sure that the T-SQL query has a valid syntaxBinding is mostly concerned with name resolutionUses the query information to build a tree of relational operators
Demo
Logical Trees
Simplification
Reduces the query tree into a simpler form in order to make the optimization process easierSome 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
Demo
Simplification
Transformation Rules
Used to explore the search spaceExploration rules (logical transformation rules)
Generate logical equivalent alternativesCommutativity
A join B – > B join AAssociativity
(A join B) join C – > A join (B join C)Implementation rules (physical transformation rules)
Obtain physical alternativesJoin to Sort Merge Join
A join B – > A Merge Join B
Transformation Rules
Applying transformations does not necessarily reduce the cost of the generated alternatives
Cost will be estimated later (only physical alternatives are costed)
Demo
Transformation Rules
The Memo
Search data structure that is used to store the alternatives which are generated and analyzed by the Query OptimizerA new memo structure is created for each optimizationThe Query Optimizer copies the original query tree's logical expressions into the memo structure
The Memo
After Optimization
Demo
The Memo
Optimization Phases – Full Optimization
Search 0, Transaction Processing phaseSearch 1, Quick Plan phaseSearch 2, Full Optimization
Demo
The Optimization Phases
Dive into the Query Optimizer
Thank You!