SlideShare a Scribd company logo
Polish SQL Server User Group
Troubleshoot SQL Server performance
problems like a Microsoft Engineer
Polish SQL Server User Group
About the Author
Marek Maśko
• Senior Database Analyst in
• Working with SQL Server for ~6 years
• SQL DBA, Dev & Architect
• Contact Information:
Email: marek.masko@gmail.com
LinkedIn: https://pl.linkedin.com/in/marekmasko
Twitter: @MarekMasko
Polish SQL Server User Group
Scenario
• Users report performance issue
• You know nothing about server and database
What you do?
Polish SQL Server User Group
Microsoft Customer Support Service
• Users report performance issue
• You open the MS Support Case
• MS CSS gives you PSSdiag package and ask you to run it
• You run it and collect the data
• Than You upload collected data to the workspace
• MS CSS returns with:
– huge report about your SQL Server state
– issue root cause explanation
– Solution or recommendation
How they do it?
Polish SQL Server User Group
Tools
Data collection
• PSSDiag / SQLDiag
• Diag Manager
Data analysis
• SQLNexus
– RML Utilities
– Relog
• PAL Tool
Polish SQL Server User Group
PSSDIAG
Polish SQL Server User Group
PSSdiag
• Developed as a side project at Microsoft
• Mainly used by CSS and PSS teams
• Tool wrapper on other MS tools
• Based on SQLDiag
• Two versions:
– Internal
– External
• Dramaticaly simplifies performance data collection
Polish SQL Server User Group
SQLDiag
• It’s a command line utility delivered with SQL Server
• Located in the installation Binn directory
• It’s main purpose is to collect diagnostic data
PSSdiag SQLDiag Collectors
Polish SQL Server User Group
What does it collect?
• Event Logs
• Performance Monitor Counters
• Server Configuration
• Error Logs
• Profiler Trace
• Blocking information
• PerfStat Scripts
• Spinlocks, query statistics query hashes
...
• There is a possibility to add your own custom collectors!
Polish SQL Server User Group
How to run it?
Security
• Windows authentication is default
• SQL authentication
– Prompt for password
• The account used to run it
– Must be able to login into target instances
– Must be a member of the sysadmin role
– Must be a member of Administrators
Configuration
• Requires an XML configuration file (specifies what to collect)
Polish SQL Server User Group
Parameters
• PSSdiag /B 14:00:00
• PSSdiag /E +02:00:00
• PSSdiag /B 08:00:00 /E +09:00:00
• PSSdiag /E 02:00:00 /L /Q
• PSSdiag /R /A Myname
• PSSdiag START /A Myname
• PSSdiag /U /A Myname
All command line parameters:
http://msdn.microsoft.com/en-us/library/ms162833.aspx
Polish SQL Server User Group
Resource hit
• PSSDiag itself is negligible
• Collectors are efficient
• Profiler tracing is expensive
• Select output folder carefully
• Do not capture more than you need
• Always test and monitor it!
Polish SQL Server User Group
Extended periods
• Run as a service so logout doesn’t stop collection
• Profiler Trace dominates output file size
• Trace files must always be collected on the server
• Enables real-time NTFS compression (/C1)
• Enable the DeleteOldTraceFiles
Polish SQL Server User Group
DIAG MANAGER
Polish SQL Server User Group
Diag Manager
• GUI tool used to create configuration files
• Can be downloaded for free from:
http://diagmanager.codeplex.com
Polish SQL Server User Group
DEMO
Lets take a look on PSSDiag
Polish SQL Server User Group
SQLNEXUS
Polish SQL Server User Group
SQL Nexus
• Created as a side project at SQL Support Escalation team
• Process the output of PSSDiag/SQLDiag into a database and
runs Reporting Services reports on top of it
• Allows users to create own collections and reports
• Can be downloaded for free from:
http://sqlnexus.codeplex.com/
Polish SQL Server User Group
Key Features
• Fast data loading and processing
• SQL Trace data aggregation using advanced logic and pattern
recognition for intelligent statement execution grouping
• Supports multiple databases to store several performance
analysis data sets
• Visualize loaded data via reports
• Extensibility!
Polish SQL Server User Group
Pre-requsites
• Windows 2008 or newer
• SQL Server 2008 or newer
• .NET framework 4.0
• RML Utilities
Polish SQL Server User Group
SQL Nexus reports
• Built-in reports for:
– Environment configuration
– Blocking
– Wait statistics
– Resource utilization
– Interesting events
– Missing indexes
– Data Statistics
– Virtual file stats
Polish SQL Server User Group
Bottleneck Analysis
Polish SQL Server User Group
Read Trace Reports
Polish SQL Server User Group
Read Trace Reports
Polish SQL Server User Group
RML Utilities
• Replay Markup Language (RML) Utilities for SQL Server
• Can be downloaded for free from:
https://support.microsoft.com/en-us/kb/944837
• Package contains:
– ReadTrace
– Reporter
– OStress
– OStress Replay Control Agent (ORCA)
Polish SQL Server User Group
ReadTrace
• Command line tool for processing Profiler traces and Extended
Event traces
• ReadTrace consumes as input trace (.TRC) or (.XEL) files and
.CAB or .ZIP files which contain .TRC files.
• The outputs from ReadTrace can be .TRC files, .RML files and
the Performance Analysis (PerfAnalysis) database.
• RML Utilities have great documentation
Polish SQL Server User Group
Relog
• Command line tool for processig performance counter logs
• Possible formats:
– Text-TSV (tab delimited text)
– Text-CSV (comma-delimited text)
– Binary-BIN
– SQL
• Has possibility to filter specified counters
https://technet.microsoft.com/pl-pl/library/bb490958.aspx
Polish SQL Server User Group
DEMO
Lets take a look on SQLNexus
Polish SQL Server User Group
CUSTOM DATA COLLECTIONS
Polish SQL Server User Group
Custom Data Collections
• Add your SQL scripts to the _MyCollectors DiagManager folder
• Make sure the resultsets have a tag that uniquely identifies
them
Polish SQL Server User Group
Custom Data Collections
• Custom Collections are added to the CustomDiag.XML file in
the _MyCollectorsfolder
• It is quicker to modify this XML file than do it through the UI
Polish SQL Server User Group
Custom Data Collections
• Uses a custom import process
• By modifying a XML configuration file, you can have SQL Nexus
import your custom data collection from PSSDiag
• Add the name of the rowset to TextRowsetsCustom.xml
• Located where you installed SQL Nexus
Polish SQL Server User Group
DEMO
Polish SQL Server User Group
PAL TOOL
Polish SQL Server User Group
PAL Tool
• PAL – Performance Analysis of Logs
• Can be downloaded for free from: http://pal.codeplex.com/
• Allows you to set custom thresholds or use threshold already
configured for your workload
• Requires MS Chart Controls
Polish SQL Server User Group
PAL Wizard
• Carefully choose options and answer questions
• Processing will take time
Polish SQL Server User Group
PAL Output
• Graphs with thresholds
• Alerts summarized in time
slices
Polish SQL Server User Group
PAL Output
• The output is color coded to let you know the areas to focus
on
– You do have some control over this through the threshold files
– Not everything in red actually means something
• You must know what to look for
Polish SQL Server User Group
DEMO
Lets take a look on PAL Tool
Polish SQL Server User Group
When to Use Which Tool?
PSSDIAG / SQLNexus
• More targeted performance analysis
• Need to view SQL internal resources (waits, blocking chains,
query plans)
• Short timespan for collection
PAL
• Great for overall system performance
• Benchmark
• Long duration
Polish SQL Server User Group
SQL SERVER
PERFORMANCE DASHBOARD
Polish SQL Server User Group
SQL Server Performance Dashboard Reports
• Set of SSRS performance reports that integrate into SSMS
• Can be downloaded for free from:
https://www.microsoft.com/en-us/download/details.aspx?id=29063
• Custom reports made to make
performance monitoring easier.
• Great for tracking down trickier
performance issues
Polish SQL Server User Group
Installation
• Download from web page
• Run *.msi package
• Execute setup.sql scripts
• Add reports to SSMS
Polish SQL Server User Group
DEMO
Polish SQL Server User Group
QUESTIONS?

More Related Content

PDF
Performance Tuning Oracle Weblogic Server 12c
PPTX
End-to-end Troubleshooting Checklist for Microsoft SQL Server
PPTX
Ten query tuning techniques every SQL Server programmer should know
PPTX
Ultimate Free SQL Server Toolkit
PDF
Avoid boring work_v2
PDF
SQL in the Hybrid World
PDF
Oracle 12c Parallel Execution New Features
PPTX
PDB Provisioning with Oracle Multitenant Self Service Application
Performance Tuning Oracle Weblogic Server 12c
End-to-end Troubleshooting Checklist for Microsoft SQL Server
Ten query tuning techniques every SQL Server programmer should know
Ultimate Free SQL Server Toolkit
Avoid boring work_v2
SQL in the Hybrid World
Oracle 12c Parallel Execution New Features
PDB Provisioning with Oracle Multitenant Self Service Application

What's hot (20)

PPTX
Oracle Database 12c - Features for Big Data
PDF
SQL Monitoring in Oracle Database 12c
PDF
Microsoft SQL Server Query Tuning
PDF
Pre and post tips to installing sql server correctly
PPTX
Who wants to be a DBA? Roles and Responsibilities
PDF
Database Automation with MySQL Triggers and Event Schedulers
PPTX
SQL Server Wait Types Everyone Should Know
PPTX
Making MySQL highly available using Oracle Grid Infrastructure
PDF
Collaborate 2019 - How to Understand an AWR Report
PDF
Aioug vizag oracle12c_new_features
PDF
Simplifying EBS 12.2 ADOP - Collaborate 2019
PDF
Tips to install and manage always on availability groups in sql server 2012 &...
PPTX
Security of Oracle EBS - How I can Protect my System (UKOUG APPS 18 edition)
PPTX
Reduce latency and boost sql server io performance
PPT
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
PPT
Sql Server Performance Tuning
PDF
Clone Oracle Databases In Minutes Without Risk Using Enterprise Manager 13c
PPT
IOUG Collaborate 2015 - PDB Cloning Using SQL Commands
PDF
SQL Server Alwayson for SharePoint HA/DR Step by Step Guide
PPTX
SharePoint Disaster Recovery with SQL AlwaysOn
Oracle Database 12c - Features for Big Data
SQL Monitoring in Oracle Database 12c
Microsoft SQL Server Query Tuning
Pre and post tips to installing sql server correctly
Who wants to be a DBA? Roles and Responsibilities
Database Automation with MySQL Triggers and Event Schedulers
SQL Server Wait Types Everyone Should Know
Making MySQL highly available using Oracle Grid Infrastructure
Collaborate 2019 - How to Understand an AWR Report
Aioug vizag oracle12c_new_features
Simplifying EBS 12.2 ADOP - Collaborate 2019
Tips to install and manage always on availability groups in sql server 2012 &...
Security of Oracle EBS - How I can Protect my System (UKOUG APPS 18 edition)
Reduce latency and boost sql server io performance
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Sql Server Performance Tuning
Clone Oracle Databases In Minutes Without Risk Using Enterprise Manager 13c
IOUG Collaborate 2015 - PDB Cloning Using SQL Commands
SQL Server Alwayson for SharePoint HA/DR Step by Step Guide
SharePoint Disaster Recovery with SQL AlwaysOn
Ad

Similar to PLSSUG - Troubleshoot SQL Server performance problems like a Microsoft Engineer (20)

PDF
SQLSaturday 664 - Troubleshoot SQL Server performance problems like a Microso...
PPTX
Sql server lesson12
PPSX
Sql server lesson12
PPTX
Sql server-performance-hafi
PDF
SQL Server - Using Tools to Analyze Query Performance
PPTX
SQL Explore 2012: P&T Part 1
PPTX
Perfmon And Profiler 101
PPTX
PASS VC: SQL Server Performance Monitoring and Baselining
PDF
Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3
PPTX
Oracle - Checklist for performance issues
PPTX
Benchmarking like a pro
PPTX
Watch Re-runs on your SQL Server with RML Utilities
PDF
Winning performance challenges in oracle standard editions
PPT
Sql server performance tuning
PPTX
Qure Tech Presentation
DOCX
Sql server 2008 r2 performance and scale
PDF
Why & how to optimize sql server for performance from design to query
PDF
Winning performance challenges in oracle standard editions
PPS
Sql Nexus
PDF
Troubleshooting SQL Server Performance SQL Saturday
SQLSaturday 664 - Troubleshoot SQL Server performance problems like a Microso...
Sql server lesson12
Sql server lesson12
Sql server-performance-hafi
SQL Server - Using Tools to Analyze Query Performance
SQL Explore 2012: P&T Part 1
Perfmon And Profiler 101
PASS VC: SQL Server Performance Monitoring and Baselining
Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3
Oracle - Checklist for performance issues
Benchmarking like a pro
Watch Re-runs on your SQL Server with RML Utilities
Winning performance challenges in oracle standard editions
Sql server performance tuning
Qure Tech Presentation
Sql server 2008 r2 performance and scale
Why & how to optimize sql server for performance from design to query
Winning performance challenges in oracle standard editions
Sql Nexus
Troubleshooting SQL Server Performance SQL Saturday
Ad

Recently uploaded (20)

PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
L1 - Introduction to python Backend.pptx
PDF
System and Network Administration Chapter 2
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Introduction to Artificial Intelligence
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
history of c programming in notes for students .pptx
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Digital Strategies for Manufacturing Companies
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Computer Software and OS of computer science of grade 11.pptx
L1 - Introduction to python Backend.pptx
System and Network Administration Chapter 2
Understanding Forklifts - TECH EHS Solution
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
How to Migrate SBCGlobal Email to Yahoo Easily
How to Choose the Right IT Partner for Your Business in Malaysia
Upgrade and Innovation Strategies for SAP ERP Customers
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Introduction to Artificial Intelligence
Internet Downloader Manager (IDM) Crack 6.42 Build 41
history of c programming in notes for students .pptx
wealthsignaloriginal-com-DS-text-... (1).pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Digital Strategies for Manufacturing Companies
Adobe Illustrator 28.6 Crack My Vision of Vector Design

PLSSUG - Troubleshoot SQL Server performance problems like a Microsoft Engineer

  • 1. Polish SQL Server User Group Troubleshoot SQL Server performance problems like a Microsoft Engineer
  • 2. Polish SQL Server User Group About the Author Marek Maśko • Senior Database Analyst in • Working with SQL Server for ~6 years • SQL DBA, Dev & Architect • Contact Information: Email: [email protected] LinkedIn: https://pl.linkedin.com/in/marekmasko Twitter: @MarekMasko
  • 3. Polish SQL Server User Group Scenario • Users report performance issue • You know nothing about server and database What you do?
  • 4. Polish SQL Server User Group Microsoft Customer Support Service • Users report performance issue • You open the MS Support Case • MS CSS gives you PSSdiag package and ask you to run it • You run it and collect the data • Than You upload collected data to the workspace • MS CSS returns with: – huge report about your SQL Server state – issue root cause explanation – Solution or recommendation How they do it?
  • 5. Polish SQL Server User Group Tools Data collection • PSSDiag / SQLDiag • Diag Manager Data analysis • SQLNexus – RML Utilities – Relog • PAL Tool
  • 6. Polish SQL Server User Group PSSDIAG
  • 7. Polish SQL Server User Group PSSdiag • Developed as a side project at Microsoft • Mainly used by CSS and PSS teams • Tool wrapper on other MS tools • Based on SQLDiag • Two versions: – Internal – External • Dramaticaly simplifies performance data collection
  • 8. Polish SQL Server User Group SQLDiag • It’s a command line utility delivered with SQL Server • Located in the installation Binn directory • It’s main purpose is to collect diagnostic data PSSdiag SQLDiag Collectors
  • 9. Polish SQL Server User Group What does it collect? • Event Logs • Performance Monitor Counters • Server Configuration • Error Logs • Profiler Trace • Blocking information • PerfStat Scripts • Spinlocks, query statistics query hashes ... • There is a possibility to add your own custom collectors!
  • 10. Polish SQL Server User Group How to run it? Security • Windows authentication is default • SQL authentication – Prompt for password • The account used to run it – Must be able to login into target instances – Must be a member of the sysadmin role – Must be a member of Administrators Configuration • Requires an XML configuration file (specifies what to collect)
  • 11. Polish SQL Server User Group Parameters • PSSdiag /B 14:00:00 • PSSdiag /E +02:00:00 • PSSdiag /B 08:00:00 /E +09:00:00 • PSSdiag /E 02:00:00 /L /Q • PSSdiag /R /A Myname • PSSdiag START /A Myname • PSSdiag /U /A Myname All command line parameters: http://msdn.microsoft.com/en-us/library/ms162833.aspx
  • 12. Polish SQL Server User Group Resource hit • PSSDiag itself is negligible • Collectors are efficient • Profiler tracing is expensive • Select output folder carefully • Do not capture more than you need • Always test and monitor it!
  • 13. Polish SQL Server User Group Extended periods • Run as a service so logout doesn’t stop collection • Profiler Trace dominates output file size • Trace files must always be collected on the server • Enables real-time NTFS compression (/C1) • Enable the DeleteOldTraceFiles
  • 14. Polish SQL Server User Group DIAG MANAGER
  • 15. Polish SQL Server User Group Diag Manager • GUI tool used to create configuration files • Can be downloaded for free from: http://diagmanager.codeplex.com
  • 16. Polish SQL Server User Group DEMO Lets take a look on PSSDiag
  • 17. Polish SQL Server User Group SQLNEXUS
  • 18. Polish SQL Server User Group SQL Nexus • Created as a side project at SQL Support Escalation team • Process the output of PSSDiag/SQLDiag into a database and runs Reporting Services reports on top of it • Allows users to create own collections and reports • Can be downloaded for free from: http://sqlnexus.codeplex.com/
  • 19. Polish SQL Server User Group Key Features • Fast data loading and processing • SQL Trace data aggregation using advanced logic and pattern recognition for intelligent statement execution grouping • Supports multiple databases to store several performance analysis data sets • Visualize loaded data via reports • Extensibility!
  • 20. Polish SQL Server User Group Pre-requsites • Windows 2008 or newer • SQL Server 2008 or newer • .NET framework 4.0 • RML Utilities
  • 21. Polish SQL Server User Group SQL Nexus reports • Built-in reports for: – Environment configuration – Blocking – Wait statistics – Resource utilization – Interesting events – Missing indexes – Data Statistics – Virtual file stats
  • 22. Polish SQL Server User Group Bottleneck Analysis
  • 23. Polish SQL Server User Group Read Trace Reports
  • 24. Polish SQL Server User Group Read Trace Reports
  • 25. Polish SQL Server User Group RML Utilities • Replay Markup Language (RML) Utilities for SQL Server • Can be downloaded for free from: https://support.microsoft.com/en-us/kb/944837 • Package contains: – ReadTrace – Reporter – OStress – OStress Replay Control Agent (ORCA)
  • 26. Polish SQL Server User Group ReadTrace • Command line tool for processing Profiler traces and Extended Event traces • ReadTrace consumes as input trace (.TRC) or (.XEL) files and .CAB or .ZIP files which contain .TRC files. • The outputs from ReadTrace can be .TRC files, .RML files and the Performance Analysis (PerfAnalysis) database. • RML Utilities have great documentation
  • 27. Polish SQL Server User Group Relog • Command line tool for processig performance counter logs • Possible formats: – Text-TSV (tab delimited text) – Text-CSV (comma-delimited text) – Binary-BIN – SQL • Has possibility to filter specified counters https://technet.microsoft.com/pl-pl/library/bb490958.aspx
  • 28. Polish SQL Server User Group DEMO Lets take a look on SQLNexus
  • 29. Polish SQL Server User Group CUSTOM DATA COLLECTIONS
  • 30. Polish SQL Server User Group Custom Data Collections • Add your SQL scripts to the _MyCollectors DiagManager folder • Make sure the resultsets have a tag that uniquely identifies them
  • 31. Polish SQL Server User Group Custom Data Collections • Custom Collections are added to the CustomDiag.XML file in the _MyCollectorsfolder • It is quicker to modify this XML file than do it through the UI
  • 32. Polish SQL Server User Group Custom Data Collections • Uses a custom import process • By modifying a XML configuration file, you can have SQL Nexus import your custom data collection from PSSDiag • Add the name of the rowset to TextRowsetsCustom.xml • Located where you installed SQL Nexus
  • 33. Polish SQL Server User Group DEMO
  • 34. Polish SQL Server User Group PAL TOOL
  • 35. Polish SQL Server User Group PAL Tool • PAL – Performance Analysis of Logs • Can be downloaded for free from: http://pal.codeplex.com/ • Allows you to set custom thresholds or use threshold already configured for your workload • Requires MS Chart Controls
  • 36. Polish SQL Server User Group PAL Wizard • Carefully choose options and answer questions • Processing will take time
  • 37. Polish SQL Server User Group PAL Output • Graphs with thresholds • Alerts summarized in time slices
  • 38. Polish SQL Server User Group PAL Output • The output is color coded to let you know the areas to focus on – You do have some control over this through the threshold files – Not everything in red actually means something • You must know what to look for
  • 39. Polish SQL Server User Group DEMO Lets take a look on PAL Tool
  • 40. Polish SQL Server User Group When to Use Which Tool? PSSDIAG / SQLNexus • More targeted performance analysis • Need to view SQL internal resources (waits, blocking chains, query plans) • Short timespan for collection PAL • Great for overall system performance • Benchmark • Long duration
  • 41. Polish SQL Server User Group SQL SERVER PERFORMANCE DASHBOARD
  • 42. Polish SQL Server User Group SQL Server Performance Dashboard Reports • Set of SSRS performance reports that integrate into SSMS • Can be downloaded for free from: https://www.microsoft.com/en-us/download/details.aspx?id=29063 • Custom reports made to make performance monitoring easier. • Great for tracking down trickier performance issues
  • 43. Polish SQL Server User Group Installation • Download from web page • Run *.msi package • Execute setup.sql scripts • Add reports to SSMS
  • 44. Polish SQL Server User Group DEMO
  • 45. Polish SQL Server User Group QUESTIONS?