190 likes | 367 Views
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
E N D
Dive into the Query Optimizer Dive into the Query Optimizer: Undocumented Insight Benjamin Nevarez Blog: benjaminnevarez.com Twitter: @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) • Simplification • Initial set of Join Orders • Trivial Plan • Optimization Phases • search 0 • search 1 • search 2
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
Demo Logical Trees
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
Demo Simplification
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
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 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
The Memo • After Optimization
Demo The Memo
Optimization Phases – Full Optimization • Search 0, Transaction Processing phase • Search 1, Quick Plan phase • Search 2, Full Optimization
Demo The Optimization Phases
Dive into the Query Optimizer Thank You!