Presentation is loading. Please wait.

Presentation is loading. Please wait.

Microsoft SQL Server Administration for SAP Performance Monitoring and Tuning.

Similar presentations


Presentation on theme: "Microsoft SQL Server Administration for SAP Performance Monitoring and Tuning."— Presentation transcript:

1 Microsoft SQL Server Administration for SAP Performance Monitoring and Tuning

2 2 Overview

3 3 Database Performance Analysis

4 4

5 5

6 6 Cache and CPU Tuning Poor SQL statements? Cache hit ratio > 95%? 2 * CPU idle > CPU busy? OS paging? All CPUs available for SQL Server? Tune poor statements Increase server main memory Add CPU(s) to server Increase CPUs for SQL Server + Yes No ? Yes No

7 7 Database Configuration  affinity mask  awe enabled  cost threshold for parallelism  max degree of parallelism  fillfactor  index create memory  lightweight pooling  Locks / open objects / connections  Max/Min server memory

8 8 Database Configuration  max worker threads  min memory per query  network packet size / protocol  priority boost  query governor cost limit  query wait  recovery interval  set working set size

9 9 Server Parameters

10 10 I/O System Tuning Slow RAID identified? Avg. disk queue length > 2 * phys. Disks in RAID RAID 5 and mostly write queue? Check all logical disks with NT perfmon Switch to RAID 0+1 Decrease max async I/O Yes No ? Yes Peak I/O on I/O bus < 133 MB/sec Add / speed up I/O bus Peak I/O on RAID < 40 MB/sec No Yes Add RAID + move disks Yes Check disk + controller No

11 11 Server Configuration DisklayoutDisklayout ParametersettingsParametersettings HardwareconfigurationHardwareconfiguration Main memory CPUCPU DisksDisks Poor database configuration configuration Poor configuration Cache hit ratio SQL Server CPU utilization DB error log High I/O times Operating system paging CPU utilization Disk response times >95% 2 * idle > busy (SQL Server) Select 1 row via prim. key > 10 ms 2 * idle > busy (total) Wait queue and low transfer rate Page in > 100 MB / h

12 12 Isolation level Scan type (Range, Table, Probe) # of rows in scan # of rows/page Locking strategy (Table, Page, Row) Operation type (scan, update) Dynamic Locking

13 13  To lock a fine granule must place intent locks at higher granules T1: IX T1: X T2: IS T2: S Table PagePagePage RowRowRow Multi-Granular Locking

14 14 ModeDescription SShare - used for reading XExclusive - typically used for writing UUpdate - used to evaluate prior to writing ISIntent Share - share locking at finer level IXIntent Exclusive - X locking at finer level SIXShare Intent Exclusive Lock Modes  Standard multi-granular lock modes

15 15 Resource Type Resource Specific Data Database ID HOW does SQL lock ?  How do you identify a lock?  Lock “resource”  Table “Authors”  Page 23  Row with Key = “23812”  Lock manager knows nothing about resource format; it simply does a “memcmp()”  Lock resource format:

16 16  Example resource formats:  Table:  Page:  RowID:  Key: 3256585 Object ID 2:3286 File#: Page# 2:328:119 File# : Page# : Slot on Page 325658:2:23411867 Object ID : IndexId : 6byte Hash 5 5 5 5 Resource type Database ID Lock Resource Format

17 17 New Lock Hints  Granularity Hints  ROWLOCK, PAGLOCK,TABLOCK  ISOLEVEL Hints  HOLDLOCK, NOLOCK  READCOMMITTED, REPEATABLEREAD, SERIALIZABLE, READUNCOMMITTED [All New]

18 18 New Lock Hints  READPAST  Useful for implementing work queues  UPDLOCK  Select for update  Deadlock due to select for update  Starving lock waits  LOCK_TIMEOUT(not a hint)  Application response time

19 19 Concurrency issue analysis  sp_who, sysprocesses  sp_locks  SQL Profiler  sp_indexoption  Deadlock  DBCC inputbuffer  Kill  Lock waits  Latches

20 20 Time 1. Work process 2. Work process 3. Work process 4. Work process Acquires MARA Lock A long period of processing Commit Update MARA Working... WAITING! Update MARA Requests MARA Lock Acquires MARA Lock Commit Working... WAITING! Update MARA Requests MARA Lock Acquires MARA Lock WAITING... Update MARA Requests MARA Lock MARA Locked by: WP 1WP 2WP 3 Lockwait Situations

21 21 Monitoring Lockwaits R/3 Lock Monitor

22 22 Process info from SQL Enterprise Manager

23 23 Locks from SQL Enterprise Manager

24 24 Locks from SQL Enterprise Manager

25 25 ST04 Detailed Analysis

26 26 Top Largest Tables

27 27 Top Largest Updated Tables

28 28 ST05

29 29 Table Analysis

30 30 Table Statistics

31 31 Selectivity

32 32 Density

33 33 DBCC Showcontig

34 34 Performance History

35 35 System Tables

36 36 System Procedures

37 37 Name Cache Stats

38 38 Stats on SPs

39 39 Stats on SPs

40 40 Stats on SPs

41 41 Stats on SPs

42 42 Stats on SPs

43 43 Query issues  Unnecessary results  Select with no where clause  Select * instead of selecting few columns  Queries not qualified properly  Poorly written queries  Missing index  Old statistics  Incorrect optimization  Index Tuning Wizard

44 44 Choosing index  Space utilized by index  Index maintenance overhead  To cluster or not  Bookmark lookup  Range scan(OLTP Vs OLAP)  Index columns  Short & with high selectivity  Often used in many statements  Covered  Multi index query

45 45 Monitoring Query execution  Analyze query execution plan  Analyze the right plan - connection settings  spid, blocked, waittype, cpu physical_io, memusage, open_tran from sysprocesses  Execution plan, read, write, duration in SQL Profiler

46 46 Monitoring Query execution  Stats I/o  Stats time  Write your own trace  Expected time / threshold  Worktable  Scan Vs Seek

47 47 Query execution  Query Hints  Join, Index, Lock, Processing  Distributed query execution  TOP / SET ROWCOUNT  FASTFIRSTROW  IN / OR and subquery  Selecting with alias

48 48 Using stored procedures  Cached execution plan  Recompiled when stats changes  Warning: Wrong Parameter to stored proc  Binding parameter by position  Set nocount  sp_executesql  Auto-parameterization in SQL7  sp_recompile

49 49 Table statistics  Auto update stats  Rowmodctr and StatVersion  Fullscan and sampling  Auto column stats  Explicit update stats  Explicit column stats  sp_autostats  Queue / log table  sp_recompile

50 50 Tuning Expensive SQL Statements Poor statement DDIC info SQL Explain Where used list Is there a suitable index? Good Optimizer decision? Inefficient coding? Update statistics Re-code Yes No Index statistics up to date? No Re-code or change index Yes Statistics page Autoupdate stats on? Switch on auto updstats Yes No

51 51 Lab  Improve the slow running report  Use ST05  Stats on SPs(ST04)  And other methods

52 52 Summary  Write module summary


Download ppt "Microsoft SQL Server Administration for SAP Performance Monitoring and Tuning."

Similar presentations


Ads by Google