dive into the query optimizer dive into the query optimizer: undocumented insight benjamin nevarez...

Post on 02-Jan-2016

242 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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!

top related