Upload
marek-masko
View
190
Download
0
Embed Size (px)
Citation preview
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: [email protected]
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?