query tuning azure sql databases

47
Query Performance Tuning in the Cloud Start Grant Fritchey

Upload: grant-fritchey

Post on 20-Jun-2015

789 views

Category:

Technology


4 download

DESCRIPTION

Learn the tools and methods available for tuning queries when working in Windows Azure SQL Database

TRANSCRIPT

Page 1: Query Tuning Azure SQL Databases

Query Performance Tuning in the Cloud

Start Grant Fritchey

Page 2: Query Tuning Azure SQL Databases

Goals

Explain the importance of query tuning within the Azure SQL Database environment.

Show how the hybrid tool set can be used to identify poor performance.

Demonstrate the additional functionality available within the Database Management Portal interface.

Page 3: Query Tuning Azure SQL Databases

Get in touch Grant Fritchey

scarydba.com

[email protected]

@gfritchey

Page 4: Query Tuning Azure SQL Databases

Why Tune Queries?

You have no control over: »  Where your queries run »  How many resources your query uses »  How many CPUs/Disks are dedicated to you »  When the server is just going to go away

Most performance problems are code or structure related

One query runs many places

Page 5: Query Tuning Azure SQL Databases

Then Why Use SQL Database?

Speed of delivery Extremely low management cost

Cheap prices Expandable capacity

Page 6: Query Tuning Azure SQL Databases

What’s Old is New

Transactions as short as possible

Only move the data you need to move

Only move the data when you need to move it

Tune the queries

Page 7: Query Tuning Azure SQL Databases

Checking on Throttling

Throttling

Master Database » Sys.event_log » Sys.database_connection_stats

Page 8: Query Tuning Azure SQL Databases

Checking on Throttling

Page 9: Query Tuning Azure SQL Databases

Tools for Query Tuning

Query Tuning Tools

SQL Server Management Studio

SQL Database Management Portal

Dynamic Management Objects

Page 10: Query Tuning Azure SQL Databases

Connectivity required

SQL Server Management Studio

Object Explorer

Query window » And not much else

Statistics Time

Execution Plans

Statistics IO

Page 11: Query Tuning Azure SQL Databases

SSMS – Object Explorer

Page 12: Query Tuning Azure SQL Databases

SSMS - Query Window

Page 13: Query Tuning Azure SQL Databases

SSMS - Statistics IO/Time

Page 14: Query Tuning Azure SQL Databases

SSMS – Execution Plans

Page 15: Query Tuning Azure SQL Databases

SSMS – Execution Plans

Page 16: Query Tuning Azure SQL Databases

SSMS – Execution Plans

Page 17: Query Tuning Azure SQL Databases

Monitor

Query window Execution Plan

Statistics Time

SQL Database Management Portal

Statistics IO

Page 18: Query Tuning Azure SQL Databases

Portal: Monitor

Connection Activity » Including throttled connections

Cache dependent

Query Performance » Aggregation » Details

Page 19: Query Tuning Azure SQL Databases

Monitor: Connection Activity

Page 20: Query Tuning Azure SQL Databases

Monitor: Connection Activity

Page 21: Query Tuning Azure SQL Databases

Monitor: Query Activity

Page 22: Query Tuning Azure SQL Databases

Monitor: Query Details

Page 23: Query Tuning Azure SQL Databases

Monitor: Query Plan

Page 24: Query Tuning Azure SQL Databases

Execution plans » Actual » Estimated

Roughly same as SSMS query window » No drag & drop for object names » No code completion

Portal: Query Window

No properties » SET STATISTICS IO/TIME ON/OFF

Page 25: Query Tuning Azure SQL Databases

Query Window

Page 26: Query Tuning Azure SQL Databases

Query Window: My Work

Page 27: Query Tuning Azure SQL Databases

Query Window: Results

Page 28: Query Tuning Azure SQL Databases

Query Window: Statistics

Page 29: Query Tuning Azure SQL Databases

Query Window: Messages

Page 30: Query Tuning Azure SQL Databases

Graphical

Can be saved

Highlighting

Properties

Portal: Execution Plans

Page 31: Query Tuning Azure SQL Databases

Estimated Plan

Page 32: Query Tuning Azure SQL Databases

Estimated Plan: SELECT Operator

Page 33: Query Tuning Azure SQL Databases

Estimated Plan: SELECT Operator

Page 34: Query Tuning Azure SQL Databases

Actual Plan: Sort by CPU

Page 35: Query Tuning Azure SQL Databases

Actual Plan: Sort by IO

Page 36: Query Tuning Azure SQL Databases

Actual Plan: Grid View

Page 37: Query Tuning Azure SQL Databases

Actual Plan: Tree View

Page 38: Query Tuning Azure SQL Databases

Actual Plan: Find Nested Loops

Page 39: Query Tuning Azure SQL Databases

Actual Plan: Zoomed In

Page 40: Query Tuning Azure SQL Databases

Reset on database move » Not reboot, restart, attach, detach, etc.

Operating system information is gone

DMO Differences

No clickable execution plans

Page 41: Query Tuning Azure SQL Databases

Expected wait types » RESOURCE_SEMAPHORE » *IO_LATCH » SOS_SCHEDULER_YIELD

Special wait types » SE_REPL_SLOW_SECONDARY_THROTTLE » SE_REPL_COMMIT_ACK

sys.dm_exec_requests does show waits

sys.dm_db_wait_stats

Wait State Monitoring

Page 42: Query Tuning Azure SQL Databases

Wait State Monitoring

Page 43: Query Tuning Azure SQL Databases

Sys.dm_exec_requests

Sys.dm_exec_query_stats

Query DMOs

Sys.dm_exec_sql_text

Sys.dm_exec_query_plan

Sys.dm_exec_query_plan_text

Page 44: Query Tuning Azure SQL Databases

Sys.dm_db_index_operational_stats

Sys.dm_db_index_physical_stats

Sys.dm_db_index_usage_stats

Index DMO

Page 45: Query Tuning Azure SQL Databases

Goals

Explain the importance of query tuning within the Azure SQL Database environment.

Show how the hybrid tool set can be used to identify poor performance.

Demonstrate the additional functionality available within the Database Management Portal interface.

Page 46: Query Tuning Azure SQL Databases

Scarydba.com/resources

Resources

SQL Server 2012 Query Performance Tuning by Grant Fritchey

Performance Tuning with SQL Server Dynamic Management Views by Louis Davidson and Tim Ford

Windows Azure SQL Database and SQL Server – Performance and Scalability Compared and Contrasted

Page 47: Query Tuning Azure SQL Databases

Get in touch Grant Fritchey

scarydba.com

[email protected]

@gfritchey