This is yet another session of the SQL Server performance troubleshooting category. But this time it is not focused on various techniques and methodologies, what is the case in many others presentations. On the contrary. This presentation is focused on tools which are available for a very long time. The tools which are every day used by Microsoft engineers. The tools which still are known by very small amount of people.
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
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: marek.masko@gmail.com
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
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
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
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
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
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
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
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
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