17
Query Tuning for Database Pros & Developers Ted Krueger

Query Tuning for Database Pros & Developers

Embed Size (px)

DESCRIPTION

Presentation for Code Mastery-Chicago. Ted Krueger, Associate Principal Consultant, Microsoft MVP

Citation preview

Page 1: Query Tuning for Database Pros & Developers

Query Tuning for Database Pros & Developers

Ted Krueger

Page 2: Query Tuning for Database Pros & Developers

The Developer and DBA Affair • Ownership

– Database Ownership

– Server Ownership

– Code Ownership • Functional working relationships

• SQL Server Performance vs. Database Performance

– Tuning T-SQL at the code level – Developer with DBA Assistance

– Hardware Tuning – DBA with Developer Assistance

Page 3: Query Tuning for Database Pros & Developers

My T-SQL is so bad your…. – Start here Developers

• Middle DBA/Code Review They should know the internals and performance reasoning and make suggestions. i.e. so why is SELECT *

– End here Developers

Page 4: Query Tuning for Database Pros & Developers

My DBA is so bad your… • Every role has an apple

• DBA roles aren’t bad ones

– Making relationships where it counts • Hardware Upgrades

• Security Rights – VIEW SERVER STATE and VIEW DATABASE STATE

• Work Together!

Page 5: Query Tuning for Database Pros & Developers

Monitor – Talk DBA to me • Active Monitoring

– Blocking • Code practices resulting in blocking • Proactive tuning

– Deadlocks • #1 reason for deadlocking – Poor performance of T-SQL

– Timeouts • Unhappy

– Oh how long is that query running? • Event Notifications • Extended Events • Blocked Process Reports

Page 6: Query Tuning for Database Pros & Developers

Tuning - #1 Most Effective Area Query Optimization

Parsing Algebrizer Processor

Tree Optimizer

Page 7: Query Tuning for Database Pros & Developers

FROM JOIN WHERE GROUP

BY HAVING SELECT SORTS

How SELECT is read

Page 8: Query Tuning for Database Pros & Developers

Execution Plans Operations

Execution

Plan

Scan / Seek

Sort

Parallelism

Convert

Lookup

Join

Page 9: Query Tuning for Database Pros & Developers

Start Tuning – High Cost Operations

Page 10: Query Tuning for Database Pros & Developers

Think “Result Set” not like a developer • Data is served not conditioned

• Business Rules apply to the business layer not the data

• Procedure <> Procedural

• Row based operations are for high-level languages

– Serve applications data – they do the work

– Minimize the data being sent and received

Page 11: Query Tuning for Database Pros & Developers

Lookup – RID and Key – The other loop

Page 12: Query Tuning for Database Pros & Developers

Preventive T-SQL • Conversions – CONVERT_IMPLICIT

• Tempdb – Sort and spills from memory

• Sargable – Taking advantage of indexing in predicates

Page 13: Query Tuning for Database Pros & Developers

Abusive tempdb usage • Estimation of memory results in more needs

• Statistics forcing poor Hash Joins

• Sorting large amounts of data

Page 14: Query Tuning for Database Pros & Developers

Find pre-existing badness • Querying the Plan Cache

– DMV and DMF • sys.dm_exec_cached_plans

• sys.dm_exec_sql_text

• sys.dm_exec_query_plan

Page 15: Query Tuning for Database Pros & Developers

Size Matters – Columns, Tables…Indexes • Duplicates

• Overlapping

• Too Many

– All leading to transactional

performance issues • DML suffers

• UPDATE

• DELETE

• INSERT

• Column Length and Type

• Overall Table Width

• Page Count

• Overflow Page

Page 16: Query Tuning for Database Pros & Developers

Index Analysis – Repeat after me! • Duplicates

• Overlapping

• Too Many

– All leading to transactional

performance issues • DML suffers

• UPDATE

• DELETE

• INSERT