KEMBAR78
SQL Server Performance Tuning Baseline | PDF
1
GE Title or job number
             8/15/2012
I.     Performance Monitoring Overview
II.    Monitoring Database Servers
III.   Using SQL Profiler
IV.    Using the Database Engine Tuning Advisor
V.     Application Design Tips
VI.    Managing Processes, Locking, and Deadlocks




                                                                     2
                                                GE Title or job number
                                                             8/15/2012
3
GE Title or job number
             8/15/2012
Best Practices:

                Establish a
                 baseline                         Optimize for real-
                                                   world workloads
  Repeat                          Identify
(if desired)                    bottlenecks       Monitor/review
                                                   performance
                                                   regularly

        Measure            Make one
                                                  Focus on specific
      performance       change at a time           issues



                                                                                     4
                                                                GE Title or job number
                                                                             8/15/2012
System/OS               SQL Server               Query-Level
                          Activity Monitor
Windows Performance                                 Database Engine
     Monitor                                         Tuning Advisor
                       SQL Profiler / SQL Trace



                       Database Engine Tuning
                              Advisor
Alerts (Performance-
        Based)                                    Query Execution Plans
                       Dynamic Management
                          Views (DMVs)



                                                                                     5
                                                                GE Title or job number
                                                                             8/15/2012
• Users are reporting database timeouts
Server-Level   • Intermittent transaction timeouts
      Issues
               • “The server/application seem sluggish”

Application-   • “Application A is running more slowly
    Specific     than usual”
      Issues   • “The End-of-Month report is taking too
                 long to run.”

               • Ad-hoc reports are running slowly
Other Issues   • CPU, memory, disk, or network alerts
                 are being generated
                                                                       6
                                                  GE Title or job number
                                                               8/15/2012
Available in all current versions of Windows
Statistics are organized into:
 Objects
 Counters
 Instances
Data Collector Sets
 Windows Vista / Windows 7 / Windows Server 2008
 Used to report on performance data that is collected over time
 Includes built-in System Diagnostics and System Performance collectors
  and reports




                                                                                         8
                                                                    GE Title or job number
                                                                                 8/15/2012
Backup Device                   General Statistics
 Device throughput Bytes/sec    Logins | logouts / sec
Buffer Manager                   User Connections
 Buffer cache hit ratio        Latches
 Page reads / sec               Latch waits / sec
Buffer Partition                Locks
 Free Pages                     Lock requests / sec
                                 Lock waits / sec
Cache Manager
                                Memory Manager
 Cache Hit Ratio
                                 Everything!
Databases                       Replication
   Active Transactions          Depends on configuration
   Data File Size
   Log Growths
                                SQL Statistics
   Percent Log Used
                                 Batch requests / sec
   Transactions / sec
                                 SQL compilations / sec

                                                                              9
                                                         GE Title or job number
                                                                      8/15/2012
SQL Server Activity Monitor
Provides a quick overview of database server activity
CPU, Processes, Resource Waits and Disk I/O
“Recent Expensive Queries”

SQL Server Management Studio Reports
Quick overview of SQL Server usage
Can export to Excel or PDF




                                                                             10
                                                         GE Title or job number
                                                                      8/15/2012
Server Dashboard                       Disk Usage

Memory Consumption                     All Transactions

Activity – All Block Transactions      All Blocking Transactions

Activity – Top Sessions                Index Usage Statistics

Performance – Batch Execution          Top Transactions by Age
   Statistics                          Schema Changes History
Performance – Top Queries by Average
   CPU
Object Execution Statistics



                                       Database-Level Reports


                                                                                       11
                                                                   GE Title or job number
                                                                                8/15/2012
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

                                                                                      12
                                                                  GE Title or job number
                                                                               8/15/2012
Purpose:
 Monitoring and troubleshooting
 View server state and performance details
 Returns relational result sets (use standard SELECT statements)


Full list can be viewed in “Views  System Views” section of the properties
   of the database


Scopes:
 Server level
 Database level




                                                                                        13
                                                                    GE Title or job number
                                                                                 8/15/2012
Query Execution / Processes

 •sys.dm_exec_requests

 Storage Engine

 sys.DM_DB_File_Space_Usage

 Indexes
sys.DM_DB_Index_Operational_Stats
sys.DM_DB_Index_Physical_Stats

 Disk I/O
 sys.DM_IO_Pending_IO_Requests
 sys.DM_IO_Virtual_File_Stats

  Other Categories

Schema information | Common Language Runtime (CLR)
Database Mirror / Clustering | Replication

                                                                         14
                                                     GE Title or job number
                                                                  8/15/2012
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




                                                         15
                                     GE Title or job number
                                                  8/15/2012
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)




                                                                   17
                                               GE Title or job number
                                                            8/15/2012
SQL Profiler Terminology
 Trace Definitions
 Events
 Columns
 Filters
Creating and Managing SQL Traces
 SQL Profiler (GUI)
 System Stored Procedures (Transact-SQL)
Trace Templates (Built-In)
 Standard (Default), SP_Counts
 TSQL, TSQL_Duration, TSQL_Grouped,TSQL_Replay, TSQL_SPs
 Tuning


                                                                                18
                                                            GE Title or job number
                                                                         8/15/2012
Trace
 A set of events, data columns and filters that specify what data should be collected
 Data can be saved to a file or a database table
Trace File
 Trace data that is saved to a binary file
 Default extension is “.trc”
Trace Table
 A SQL Server database table in which trace information is stored
 Profiler will automatically create the structure of this table when you start running
  a new trace
Trace Template
 Saved specifications that can be used as the basis for new traces
 E.g., an environment may have a “Security Monitoring template”, a “CRM
  Application Performance”, etc.
 Default extension is “.tdf”



                                                                                                  19
                                                                              GE Title or job number
                                                                                           8/15/2012
Groupings:                Event
 Event Categories      Categories
 Event Classes
 Events
Examples:               Event Classes
 TSQL
 Stored Procedures
 Performance
 Errors and Warnings
 Security auditing
                           Events




                                                            20
                                        GE Title or job number
                                                     8/15/2012
Specifies the details to be monitored/recorded
Configuring columns
 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




                                                                     21
                                                 GE Title or job number
                                                              8/15/2012
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)




                                                                         22
                                                     GE Title or job number
                                                                  8/15/2012
 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




                                                                23
                                            GE Title or job number
                                                         8/15/2012
Creating new templates using SQL Profiler

Scripting trace definitions
 sp_trace_create
 sp_trace_setfilter
 sp_trace_GenerateEvent
 sp_trace_SetEvent
 sp_trace_SetStatus

Extracting SQL Server Events
 Transact-SQL Events
 ShowPlan Events
 Deadlock Events


                                                                24
                                            GE Title or job number
                                                         8/15/2012
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




                                                                               25
                                                           GE Title or job number
                                                                        8/15/2012
Reviews sample workloads and makes performance
  recommendations
Evaluates Physical Design Structures (PDS)
 Indexes (clustered, non-clustered)
 Indexed Views
 Partitions
Numerous analysis options
Output
 Generates modification scripts
 Generates Reports for later analysis




                                                                     27
                                                 GE Title or job number
                                                              8/15/2012
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




                                                               28
                                           GE Title or job number
                                                        8/15/2012
Limit tuning time
Tuning Options
 Allowed Physical Design Structures (PDS)
 Keep all/specific existing objects
 Maximum storage space
 Online or offline recommendations
 Partitioning




                                                                 29
                                             GE Title or job number
                                                          8/15/2012
Reports can be exported to XML files

Report Examples:

   Workload                                               View-Table
                     Column access        Table access
   analysis                                                Relations



                                                    Index Usage
         Statement cost       Event frequency        (current /
                                                  recommended)



                                                                                  30
                                                              GE Title or job number
                                                                           8/15/2012
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


                                                                         31
                                                     GE Title or job number
                                                                  8/15/2012
Create an abstraction layer between the database and the
   presentation code
 Separates presentation and logic (esp. in Web Apps)
 Example: ADO.NET Datasets


Database design:
 Understand typical use-cases before designing the database
 Create and enforce naming conventions
 Balance write (OLTP) and read (reporting) performance requirements
 Use strategic denormalization




                                                                                    33
                                                                GE Title or job number
                                                                             8/15/2012
Never include actions that require user input within a transaction
Use connection pooling, whenever possible
 Open connections late and close them early
 Avoid unnecessary server round-trips
Use client-side caching whenever possible
 Optimistic concurrency
 Pessimistic concurrency
Distribute processing
 Some operations are more efficient on the DB server (e.g., aggregations,
  sorting, etc.)




                                                                                        34
                                                                    GE Title or job number
                                                                                 8/15/2012
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




                                                          36
                                      GE Title or job number
                                                   8/15/2012
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


                                                       37
                                   GE Title or job number
                                                8/15/2012
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)




                                                          38
                                      GE Title or job number
                                                   8/15/2012
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




                                                                                        39
                                                                    GE Title or job number
                                                                                 8/15/2012
Blocking
 When transaction(s) must wait for a lock on a resource
 LOCK_TIMEOUT setting (default = wait forever)
Locking Models:
 Pessimistic
 Optimistic




                                                                               40
                                                           GE Title or job number
                                                                        8/15/2012
Balance of concurrency (performance) vs. consistency
 Affects SELECT queries
 SET TRANSACTION ISOLATION LEVEL
Transaction Isolation Levels
 READ UNCOMMITTED
 READ COMMITTED (default)
 REPEATABLE READ
 SERIALIZABLE
 SNAPSHOT
Row-Versioning:
 ALLOW_SNAPSHOT_ISOLATION
 READ_COMMITTED_SNAPSHOT



                                                                           41
                                                       GE Title or job number
                                                                    8/15/2012
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




                                                  42
                              GE Title or job number
                                           8/15/2012
Deadlocks:
 Two or more tasks permanently block each other based on resource
  locks
 Default resolution is within 5 seconds
Deadlock victim
 Transaction is rolled-back
 Process receives a 1205 error
Example:
 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



                                                                                   43
                                                               GE Title or job number
                                                                            8/15/2012
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




                                                                              44
                                                          GE Title or job number
                                                                       8/15/2012
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




                                                                                            45
                                                                        GE Title or job number
                                                                                     8/15/2012
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)


                                                                        46
                                                    GE Title or job number
                                                                 8/15/2012
47
GE Title or job number
             8/15/2012
SQL Server Performance Tuning Baseline

SQL Server Performance Tuning Baseline

  • 1.
    1 GE Title orjob number 8/15/2012
  • 2.
    I. Performance Monitoring Overview II. Monitoring Database Servers III. Using SQL Profiler IV. Using the Database Engine Tuning Advisor V. Application Design Tips VI. Managing Processes, Locking, and Deadlocks 2 GE Title or job number 8/15/2012
  • 3.
    3 GE Title orjob number 8/15/2012
  • 4.
    Best Practices: Establish a baseline  Optimize for real- world workloads Repeat Identify (if desired) bottlenecks  Monitor/review performance regularly Measure Make one  Focus on specific performance change at a time issues 4 GE Title or job number 8/15/2012
  • 5.
    System/OS SQL Server Query-Level Activity Monitor Windows Performance Database Engine Monitor Tuning Advisor SQL Profiler / SQL Trace Database Engine Tuning Advisor Alerts (Performance- Based) Query Execution Plans Dynamic Management Views (DMVs) 5 GE Title or job number 8/15/2012
  • 6.
    • Users arereporting database timeouts Server-Level • Intermittent transaction timeouts Issues • “The server/application seem sluggish” Application- • “Application A is running more slowly Specific than usual” Issues • “The End-of-Month report is taking too long to run.” • Ad-hoc reports are running slowly Other Issues • CPU, memory, disk, or network alerts are being generated 6 GE Title or job number 8/15/2012
  • 8.
    Available in allcurrent versions of Windows Statistics are organized into:  Objects  Counters  Instances Data Collector Sets  Windows Vista / Windows 7 / Windows Server 2008  Used to report on performance data that is collected over time  Includes built-in System Diagnostics and System Performance collectors and reports 8 GE Title or job number 8/15/2012
  • 9.
    Backup Device General Statistics  Device throughput Bytes/sec  Logins | logouts / sec Buffer Manager  User Connections  Buffer cache hit ratio Latches  Page reads / sec  Latch waits / sec Buffer Partition Locks  Free Pages  Lock requests / sec  Lock waits / sec Cache Manager Memory Manager  Cache Hit Ratio  Everything! Databases Replication  Active Transactions  Depends on configuration  Data File Size  Log Growths SQL Statistics  Percent Log Used  Batch requests / sec  Transactions / sec  SQL compilations / sec 9 GE Title or job number 8/15/2012
  • 10.
    SQL Server ActivityMonitor Provides a quick overview of database server activity CPU, Processes, Resource Waits and Disk I/O “Recent Expensive Queries” SQL Server Management Studio Reports Quick overview of SQL Server usage Can export to Excel or PDF 10 GE Title or job number 8/15/2012
  • 11.
    Server Dashboard Disk Usage Memory Consumption All Transactions Activity – All Block Transactions All Blocking Transactions Activity – Top Sessions Index Usage Statistics Performance – Batch Execution Top Transactions by Age Statistics Schema Changes History Performance – Top Queries by Average CPU Object Execution Statistics Database-Level Reports 11 GE Title or job number 8/15/2012
  • 12.
    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 12 GE Title or job number 8/15/2012
  • 13.
    Purpose:  Monitoring andtroubleshooting  View server state and performance details  Returns relational result sets (use standard SELECT statements) Full list can be viewed in “Views  System Views” section of the properties of the database Scopes:  Server level  Database level 13 GE Title or job number 8/15/2012
  • 14.
    Query Execution /Processes •sys.dm_exec_requests Storage Engine sys.DM_DB_File_Space_Usage Indexes sys.DM_DB_Index_Operational_Stats sys.DM_DB_Index_Physical_Stats Disk I/O sys.DM_IO_Pending_IO_Requests sys.DM_IO_Virtual_File_Stats Other Categories Schema information | Common Language Runtime (CLR) Database Mirror / Clustering | Replication 14 GE Title or job number 8/15/2012
  • 15.
    Data Collected:  SystemInformation (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 15 GE Title or job number 8/15/2012
  • 17.
    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) 17 GE Title or job number 8/15/2012
  • 18.
    SQL Profiler Terminology Trace Definitions  Events  Columns  Filters Creating and Managing SQL Traces  SQL Profiler (GUI)  System Stored Procedures (Transact-SQL) Trace Templates (Built-In)  Standard (Default), SP_Counts  TSQL, TSQL_Duration, TSQL_Grouped,TSQL_Replay, TSQL_SPs  Tuning 18 GE Title or job number 8/15/2012
  • 19.
    Trace  A setof events, data columns and filters that specify what data should be collected  Data can be saved to a file or a database table Trace File  Trace data that is saved to a binary file  Default extension is “.trc” Trace Table  A SQL Server database table in which trace information is stored  Profiler will automatically create the structure of this table when you start running a new trace Trace Template  Saved specifications that can be used as the basis for new traces  E.g., an environment may have a “Security Monitoring template”, a “CRM Application Performance”, etc.  Default extension is “.tdf” 19 GE Title or job number 8/15/2012
  • 20.
    Groupings: Event  Event Categories Categories  Event Classes  Events Examples: Event Classes  TSQL  Stored Procedures  Performance  Errors and Warnings  Security auditing Events 20 GE Title or job number 8/15/2012
  • 21.
    Specifies the detailsto be monitored/recorded Configuring columns  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 21 GE Title or job number 8/15/2012
  • 22.
    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) 22 GE Title or job number 8/15/2012
  • 23.
     Launching SQLProfiler  Connecting to a database instance  Configuring output options  Create a trace definition  Specifying events, columns, and filters  Running and viewing a trace 23 GE Title or job number 8/15/2012
  • 24.
    Creating new templatesusing SQL Profiler Scripting trace definitions  sp_trace_create  sp_trace_setfilter  sp_trace_GenerateEvent  sp_trace_SetEvent  sp_trace_SetStatus Extracting SQL Server Events  Transact-SQL Events  ShowPlan Events  Deadlock Events 24 GE Title or job number 8/15/2012
  • 25.
    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 25 GE Title or job number 8/15/2012
  • 27.
    Reviews sample workloadsand makes performance recommendations Evaluates Physical Design Structures (PDS)  Indexes (clustered, non-clustered)  Indexed Views  Partitions Numerous analysis options Output  Generates modification scripts  Generates Reports for later analysis 27 GE Title or job number 8/15/2012
  • 28.
    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 28 GE Title or job number 8/15/2012
  • 29.
    Limit tuning time TuningOptions  Allowed Physical Design Structures (PDS)  Keep all/specific existing objects  Maximum storage space  Online or offline recommendations  Partitioning 29 GE Title or job number 8/15/2012
  • 30.
    Reports can beexported to XML files Report Examples: Workload View-Table Column access Table access analysis Relations Index Usage Statement cost Event frequency (current / recommended) 30 GE Title or job number 8/15/2012
  • 31.
    Process:  Generate aworkload (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 31 GE Title or job number 8/15/2012
  • 33.
    Create an abstractionlayer between the database and the presentation code  Separates presentation and logic (esp. in Web Apps)  Example: ADO.NET Datasets Database design:  Understand typical use-cases before designing the database  Create and enforce naming conventions  Balance write (OLTP) and read (reporting) performance requirements  Use strategic denormalization 33 GE Title or job number 8/15/2012
  • 34.
    Never include actionsthat require user input within a transaction Use connection pooling, whenever possible  Open connections late and close them early  Avoid unnecessary server round-trips Use client-side caching whenever possible  Optimistic concurrency  Pessimistic concurrency Distribute processing  Some operations are more efficient on the DB server (e.g., aggregations, sorting, etc.) 34 GE Title or job number 8/15/2012
  • 36.
    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 36 GE Title or job number 8/15/2012
  • 37.
    SQL Server ActivityMonitor  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 37 GE Title or job number 8/15/2012
  • 38.
    Process Information  CurrentProcess ID: @@SPID  Session Options: DBCC USEROPTIONS Killing Processes  KILL ProcessID [WITH STATUSONLY] Viewing Last Activity  DBCC INPUTBUFFER(ProcessID)  DBCC OUTPUTBUFFER(ProcessID) 38 GE Title or job number 8/15/2012
  • 39.
    Coordinates multiple accessesto 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 39 GE Title or job number 8/15/2012
  • 40.
    Blocking  When transaction(s)must wait for a lock on a resource  LOCK_TIMEOUT setting (default = wait forever) Locking Models:  Pessimistic  Optimistic 40 GE Title or job number 8/15/2012
  • 41.
    Balance of concurrency(performance) vs. consistency  Affects SELECT queries  SET TRANSACTION ISOLATION LEVEL Transaction Isolation Levels  READ UNCOMMITTED  READ COMMITTED (default)  REPEATABLE READ  SERIALIZABLE  SNAPSHOT Row-Versioning:  ALLOW_SNAPSHOT_ISOLATION  READ_COMMITTED_SNAPSHOT 41 GE Title or job number 8/15/2012
  • 42.
    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 42 GE Title or job number 8/15/2012
  • 43.
    Deadlocks:  Two ormore tasks permanently block each other based on resource locks  Default resolution is within 5 seconds Deadlock victim  Transaction is rolled-back  Process receives a 1205 error Example:  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 43 GE Title or job number 8/15/2012
  • 44.
    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 44 GE Title or job number 8/15/2012
  • 45.
    Deadlock priorities:  SETDEADLOCK_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 45 GE Title or job number 8/15/2012
  • 46.
    SQL Server ErrorLog 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) 46 GE Title or job number 8/15/2012
  • 47.
    47 GE Title orjob number 8/15/2012