* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download SQL Server Performance Monitoring & Optimization
Commitment ordering wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Tandem Computers wikipedia , lookup
Oracle Database wikipedia , lookup
Ingres (database) wikipedia , lookup
Microsoft Access wikipedia , lookup
Serializability wikipedia , lookup
Team Foundation Server wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Concurrency control wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Database model wikipedia , lookup
Clusterpoint wikipedia , lookup
Relational model wikipedia , lookup
Anil Desai Austin CodeCamp 2008  Anil Desai ◦ Independent consultant (Austin, TX) ◦ Author of several SQL Server books ◦ Instructor, “Implementing and Managing SQL Server 2005” (Keystone Learning) ◦ Info: http://AnilDesai.net or [email protected] I. Performance Monitoring Overview II. Monitoring SQL Server III. Using SQL Profiler IV. Using the Database Engine Tuning Advisor V. Managing Processes, Locking, and Deadlocks Developing processes and approaches for performance optimization  Establish a baseline Repeat (if desired) Best Practices: ◦ Identify bottlenecks ◦ ◦ Measure performance Make one change at a time Optimize for real-world workloads Monitor/review performance regularly Focus on specific issues System/OS • Windows System Monitor • Alerts (Performance-Based) SQL Server • SQL Profiler / SQL Trace • Activity Monitor / SQL Server Agent Alerts • Dynamic Management Views (DMVs) QueryLevel • Database Engine Tuning Advisor • Query Execution Plans Using various SQL Server features to monitor database activity  Overviews of SQL Server usage  Server-Level Report Examples: ◦ Can export to Excel or PDF ◦ ◦ ◦ ◦ ◦ ◦ ◦ Server Dashboard Memory Consumption Activity – All Block Transactions Activity – Top Sessions Performance – Batch Execution Statistics Performance – Top Queries by Average CPU Object Execution Statistics  Examples: ◦ ◦ ◦ ◦ ◦ ◦  Disk Usage All Transactions All Blocking Transactions Index Usage Statistics Top Transactions by Age Schema Changes History New reports added in Service Packs ◦ Ability to use custom reports  Windows Event Logs / Event Viewer ◦ Application and System Event Logs  SQL Server Management Studio ◦ SQL Server Logs  Can configure max. # of log files ◦ SQL Server Agent Error logs  Can configure logging levels (Errors, Warnings, Information)  Using the Log File Viewer ◦ Can Export / Load log information ◦ Can search for specific errors/messages  Purpose: ◦ Monitoring and troubleshooting ◦ View server state and performance details ◦ Returns relational result sets  Scopes: ◦ Server level ◦ Database level  Examples: ◦ Database Engine  Sys.DM_DB_File_Space_Usage ◦ Indexes  Sys.DM_DB_Index_Operational_Stats  Sys.DM_DB_Index_Physical_Stats ◦ I/O Related  Sys.DM_IO_Pending_IO_Requests  Sys.DM_IO_Virtual_File_Stats ◦ Common Language Runtime ◦ Database Mirroring ◦ Transactions  Data Collected: ◦ System Information (MSINFO) ◦ Windows Event Logs ◦ SQL Server configuration  Command-Line Utility (SQLDiag.exe) ◦ ◦ ◦ ◦ Stores output to files Configuration file: SQLDiag.xml Can run as a service (/R) Can run in continuous mode Monitoring SQL Server Activity  Purpose / Features: ◦ ◦ ◦ ◦ ◦ ◦ ◦  GUI for managing SQL Trace Monitor important events Capture performance data / resource usage Replaying of workloads / transactions Identifying performance bottlenecks Correlation of data with System Monitor Workloads for Database Tuning Advisor Examples: ◦ Generate a list of the 100 slowest queries ◦ Monitor all failed logins (Security)  SQL Profiler Terminology ◦ ◦ ◦ ◦ Trace Definitions Events Columns Filters  Creating and Managing SQL Traces  Trace Templates (Built-In) ◦ SQL Profiler (GUI) ◦ System Stored Procedures (Transact-SQL) ◦ Standard (Default), SP_Counts ◦ TSQL, TSQL_Duration, TSQL_Grouped,TSQL_Replay, TSQL_SPs ◦ Tuning  Groupings: ◦ Event Categories ◦ Event Classes ◦ Events  Examples: ◦ ◦ ◦ ◦ ◦ TSQL Stored Procedures Performance Errors and Warnings Security auditing Event Categories Event Classes Events     Specify the details to be recorded Columns can be ordered and grouped Values can be filtered Examples of Columns: ◦ ◦ ◦ ◦ ◦ StartTime / EndTime TextData Duration Resource Usage (CPU, Reads, Writes) Information: User, Database, App. Names  Interactive ◦ Good for “live” monitoring of small sets of data  Trace Files (*.trc) ◦ Can enable file rollover based on size ◦ “Server processes trace data” option  Trace table ◦ Will automatically create the table ◦ Can set maximum number of rows  Scheduling of traces (stop time)       Launching SQL Profiler Connecting to a database instance Configuring output options Create a trace definition Specifying events, columns, and filters Running and viewing a trace    Creating new templates Scripting trace definitions Extracting SQL Server Events ◦ Transact-SQL Events ◦ ShowPlan Events ◦ Deadlock Events  Purpose / Goal: ◦ Correlate server performance with database performance  Process: ◦ Define and start a counter log ◦ Define and start a SQL Profiler trace ◦ Import Performance Data in SQL Profiler  Required Trace properties ◦ StartTime ◦ EndTime   Can monitor local or remote computers Performance Statistics: ◦ Objects ◦ Counters ◦ Instances  Modes: ◦ System Monitor ◦ Performance Logs and Alerts  Counter Logs  Trace Logs  Alerts Analyzing workloads to optimize physical database structures  Can make performance-related recommendations Replaces the “Index Tuning Wizard” Evaluates Physical Design Structures (PDS)  Numerous analysis options  Output   ◦ Indexes (clustered, non-clustered) ◦ Indexed Views ◦ Partitions ◦ Generates modification scripts ◦ Generates Reports for later analysis  Files ◦ Transact-SQL Files ◦ XML Files ◦ Should represent commonly-used queries  SQL Profiler Trace Files / Tables ◦ Use Tuning built-in trace template ◦ Events:  Transact-SQL Batch  Remote Procedure Call (RPC) ◦ Columns: Event Class and Text Data   Limit tuning time Tuning Options ◦ ◦ ◦ ◦ ◦ Allowed Physical Design Structures (PDS) Keep all/specific existing objects Maximum storage space Online or offline recommendations Partitioning   Reports can be exported to XML files Report Examples: Workload analysis Column access Statement cost Table access Event frequency View-Table Relations Index Usage (current / recommended)  Process: ◦ ◦ ◦ ◦ ◦  Generate a workload (file or table) Select tuning options Run the analysis View reports Save and/or apply recommendations Running the DTA: ◦ Database Engine Tuning Advisor Application (GUI) ◦ Dta.exe command-line utility Troubleshooting common SQL Server performance problems  Processes ◦ Interactive users  SQL Server Management Studio ◦ Applications (Connection Pooling)      SQL Profiler Database Engine Tuning Advisor Replication Service Broker Process IDs < 50 are system-related  SQL Server Activity Monitor ◦ ◦ ◦ ◦  Processes (connected users) Locks (by Process / by Object) Filtering options Auto-refresh option System Stored Procedures / Views ◦ ◦ ◦ ◦ Sys.DM_Exec_Sessions Sys.DM_Exec_Requests Sys.SysProcesses sp_who / sp_who2  Process Information ◦ Current Process ID: @@SPID ◦ Session Options: DBCC USEROPTIONS  Killing Processes ◦ KILL ProcessID [WITH STATUSONLY]  Viewing Last Activity ◦ DBCC INPUTBUFFER(ProcessID) ◦ DBCC OUTPUTBUFFER(ProcessID)     Coordinates multiple accesses to the same data Ensures ACID Properties for transactions (Atomic, Consistent, Independent, Durable) Contention can reduce performance Locking granularity: ◦ Row-Level, Page-Level, Table-Level, etc.  Lock Modes: ◦ Shared, Exclusive, etc.  Lock escalation  Blocking ◦ When transaction(s) must wait for a lock on a resource ◦ LOCK_TIMEOUT setting (default = wait forever)  Locking Models: ◦ Pessimistic ◦ Optimistic  Balance of concurrency (performance) vs. consistency ◦ Affects SELECT queries ◦ SET TRANSACTION ISOLATION LEVEL  Transaction Isolation Levels ◦ ◦ ◦ ◦  READ UNCOMMITTED READ COMMITTED (default) REPEATABLE READ SERIALIZABLE Row-Versioning: ◦ ALLOW_SNAPSHOT_ISOLATION ◦ READ_COMMITTED_SNAPSHOT   Activity Monitor SQL Profiler ◦ Locks Event Category  System Monitor: ◦ SQL Server  Locks Object  System Views ◦ Sys.DM_Tran_Locks ◦ Sys.DM_Exec_Requests  System Stored Procedures ◦ sp_Lock  Deadlocks:  Deadlock victim  Example: ◦ Two or more tasks permanently block each other based on resource locks ◦ Default resolution is within 5 seconds ◦ Transaction is rolled-back ◦ Process receives a 1205 error ◦ Process 1 locks the Customers table and requires access to the Orders Table ◦ Process 2 locks the Orders table and requires access to the Customers Table  Minimize transaction times ◦ Commit / Rollback transactions as quickly as possibly ◦ Avoid user-related time within a transaction   Access objects in a consistent order Change the transaction isolation level ◦ Use a lower level isolation level, if appropriate ◦ Use snapshot-based isolation levels  Deadlock priorities: ◦ SET DEADLOCK_PRIORITY (LOW, NORMAL, HIGH, integer)  Deadlock resolution: ◦ Lower priority is killed first ◦ If equal priorities, least expensive transaction becomes the victim ◦ Application or user should attempt to re-run the transaction   SQL Server Error Log SQL Profiler ◦ Locks Event Category  Lock:Deadlock Chain  Lock:Deadlock  Deadlock Graph ◦ Events Extraction Trace Property ◦ Export deadlock XML (.xdl) file  Viewing Deadlock Files ◦ SQL Server Management Studio (File  Open  SQL Deadlock Files (*.xdl)  Resources from Anil Desai ◦ Web Site (http://AnilDesai.net) ◦ E-Mail: [email protected] ◦ ReportingServicesGuru.com ◦ Keystone Learning Course: “Microsoft SQL Server 2005: Implementation and Maintenance (Exam 70-431)”