WW TSS-02\03 MS SQL Server Extended Performance & Tuning



Similar documents
PERFORMANCE TUNING IN MICROSOFT SQL SERVER DBMS

Introduction. Part I: Finding Bottlenecks when Something s Wrong. Chapter 1: Performance Tuning 3

MS SQL Performance (Tuning) Best Practices:

SQL Server Performance Tuning and Optimization

Microsoft SQL Server: MS Performance Tuning and Optimization Digital

MS SQL Server 2014 New Features and Database Administration

How To Improve Performance In A Database

WW TSS-15 WW TSS-16 InTouch Advanced Troubleshooting and 2014 New Features

MOC 20462C: Administering Microsoft SQL Server Databases

Optimizing Performance. Training Division New Delhi

SQL SERVER FREE TOOLS

SQL Server 2008 Designing, Optimizing, and Maintaining a Database Session 1

Analyzing & Optimizing T-SQL Query Performance Part1: using SET and DBCC. Kevin Kline Senior Product Architect for SQL Server Quest Software

WW TSS-04: Advanced Troubleshooting for Wonderware Application Server

One of the database administrators

6231B: Maintaining a Microsoft SQL Server 2008 R2 Database

CHAPTER 8: OPTIMIZATION AND TROUBLESHOOTING

Oracle Database 11 g Performance Tuning. Recipes. Sam R. Alapati Darl Kuhn Bill Padfield. Apress*

Module 15: Monitoring

DB Audit Expert 3.1. Performance Auditing Add-on Version 1.1 for Microsoft SQL Server 2000 & 2005

Microsoft SQL Server performance tuning for Microsoft Dynamics NAV

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

Administering Microsoft SQL Server 2012 Databases

Performance data collection and analysis process

Oracle Database 12c: Performance Management and Tuning NEW

Performance Counters. Microsoft SQL. Technical Data Sheet. Overview:

"Charting the Course... MOC AC SQL Server 2014 Performance Tuning and Optimization. Course Summary

NUTECH COMPUTER TRAINING INSTITUTE 1682 E. GUDE DRIVE #102, ROCKVILLE, MD WEB: TEL:

SQL Server 2012 Query. Performance Tuning. Grant Fritchey. Apress*

Mind Q Systems Private Limited

SQL Server Training Course Content

Improve query performance with the new SQL Server 2016 Query Store!!

Query Performance Tuning: Start to Finish. Grant Fritchey

W I S E. SQL Server 2008/2008 R2 Advanced DBA Performance & WISE LTD.

SOLIDWORKS Enterprise PDM - Troubleshooting Tools

Course 55144: SQL Server 2014 Performance Tuning and Optimization

vrops Microsoft SQL Server MANAGEMENT PACK User Guide

PERFORMANCE TUNING FOR PEOPLESOFT APPLICATIONS

Server Manager Performance Monitor. Server Manager Diagnostics Page. . Information. . Audit Success. . Audit Failure

How To Use A Microsoft Sql Server 2005

$99.95 per user. SQL Server 2008/R2 Database Administration CourseId: 157 Skill level: Run Time: 47+ hours (272 videos)

SQL Server 2012 Database Administration With AlwaysOn & Clustering Techniques

Microsoft SQL Server OLTP Best Practice

The Complete Performance Solution for Microsoft SQL Server

SQL Server 2012 Optimization, Performance Tuning and Troubleshooting

Monitoring PostgreSQL database with Verax NMS

StreamServe Persuasion SP5 Microsoft SQL Server

SQL Server Developer Training Program. Topics Covered

LearnFromGuru Polish your knowledge

AV-005: Administering and Implementing a Data Warehouse with SQL Server 2014

Solving Performance Problems In SQL Server by Michal Tinthofer

SQL Server. DMVs in Action. Better Queries with. Dynamic Management Views MANNING IANW. STIRK. Shelter Island

Agenda. SSIS - enterprise ready ETL

Microsoft SQL Server 2012 Administration

Microsoft SQL Database Administrator Certification

SQL Server 2008 Performance and Scale

Course 55144B: SQL Server 2014 Performance Tuning and Optimization

Exam Number/Code : Exam Name: Name: PRO:MS SQL Serv. 08,Design,Optimize, and Maintain DB Admin Solu. Version : Demo.

Microsoft SQL Server 2008 Administrator's Pocket Consultant

Microsoft SQL Server 2000 Index Defragmentation Best Practices

sql server best practice

SQL Server Performance Assessment and Optimization Techniques Jeffry A. Schwartz Windows Technology Symposium December 6, 2004 Las Vegas, NV

Administering Microsoft SQL Server Databases

This presentation is an introduction to the SQL Server Profiler tool.

mylittleadmin for MS SQL Server Quick Start Guide

Performance Tuning and Optimizing SQL Databases 2016

Performance rule violations usually result in increased CPU or I/O, time to fix the mistake, and ultimately, a cost to the business unit.

WW HMI SCADA-11 System Platform Best Practices 1: Engineering Efficiencies

SQL SERVER TRAINING CURRICULUM

Dell InTrust Preparing for Auditing Microsoft SQL Server

Understanding SQL Server Execution Plans. Klaus Aschenbrenner Independent SQL Server Consultant SQLpassion.at

Monitor and Manage Your MicroStrategy BI Environment Using Enterprise Manager and Health Center

ESSENTIAL SKILLS FOR SQL SERVER DBAS

VMware vcenter 4.0 Database Performance for Microsoft SQL Server 2008

Online Transaction Processing in SQL Server 2008

1. This lesson introduces the Performance Tuning course objectives and agenda

Infor LN Performance, Tracing, and Tuning Guide for SQL Server

General DBA Best Practices

The Database is Slow

PRO: Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server Practice Test. Version 2.

SQL Server Replication Guide

Outline. MCSE: Data Platform. Course Content. Course 10776C: MCSA: Developing Microsoft SQL Server 2012 Databases 5 Days

TUTORIAL WHITE PAPER. Application Performance Management. Investigating Oracle Wait Events With VERITAS Instance Watch

Performance Monitoring with Dynamic Management Views

ABAP SQL Monitor Implementation Guide and Best Practices

DMS Performance Tuning Guide for SQL Server

Resource Governor, Monitoring and Tracing. On SQL Server

SQL Server 2014 Performance Tuning and Optimization 55144; 5 Days; Instructor-led

Course Outline. SQL Server 2014 Performance Tuning and Optimization Course 55144: 5 days Instructor Led

Course Syllabus. Microsoft Dynamics GP Installation & Configuration. Key Data. Introduction. Audience. At Course Completion

Squeezing The Most Performance from your VMware-based SQL Server

SQL Server for developers. murach's TRAINING & REFERENCE. Bryan Syverson. Mike Murach & Associates, Inc. Joel Murach

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Toad for Oracle 8.6 SQL Tuning

Oracle 11g Database Administration

Jason S Wong Sr. DBA IT Applications Manager DBA Developer Programmer M.S. Rice 88, MBA U.H. 94(MIS)

Transcription:

Slide 1

WW TSS-02\03 MS SQL Server Extended Performance & Tuning Pierluigi Iodice Regional Solution Support Engineer, Wonderware Invensys Software Email: pierluigi.iodice@invensys.com Javier Aldan social.invensys.com @InvensysOpsMgmt / #SoftwarerRevolution /InvensysVideos /Wonderware /company/wonderware Technical Account Manager Wonderware Invensys Software Email: javier.aldan@invensys.com 2013 Invensys. All Rights Reserved. The names, logos, and taglines identifying the products and services of Invensys are proprietary marks of Invensys or its subsidiaries. All third party trademarks and service marks are the proprietary marks of their respective owners.

Microsoft SQL Server Wonderware Products has developed with Microsoft Technologies All Microsoft development languages used are Hand and Glove with SQL Server What we need to know about MS SQL Server? A. B. C. SQL Server within Wonderware Database Database Maintenance, Troubleshooting Tools & Diagnostic Query Hands on Custom Project with SQL Slide 3

Maintenance: The plan One of the first tasks for a new DB is set up a maintenance plan: Understand how to have a backup Define a recovery strategy Truncate Log and Shrink DB Check DB fragmentation Keep the database clean Slide 4

Maintenance: The backup strategy You could use the embedded SQL Server Maintenance: Maintenance plans create a workflow of the tasks required to make sure that your database is optimized, regularly backed up, and free of inconsistencies. The Maintenance Plan Wizard also creates core maintenance plans, but creating plans manually gives you much more flexibility. Here all the task you can execute! Slide 5

Maintenance: The backup strategy Here below an example of backup with SQL Server Maintenance: Slide 6

Maintenance: Backup and Restore mode The DB administrator needs to decide on a backup and restore strategy, and choose a recovery mode accordingly: Backup Under the Simple Recovery Model This recovery model supports both database backups and file backups, but does not support log backups. Backup Under the Full Recovery Model The full recovery model uses log backups to prevent data loss in the broadest range of failure scenarios, and backing and restoring the transaction log (log backups) is required. Slide 7

Maintenance: Impact of recovery model All the databases can have his own recovery model: If you have Full recovery model you can take regular t-log backups so that means the log file growth!!! Each Sql Statement can create a log lines, The following are the major causes for transaction log growth: Uncommitted transactions Rebuild/Create Index Run extremely large transaction like Bulk Insert Run Select INTO More information about the causes on http://support.microsoft.com/kb/317375/ Slide 8

Maintenance: Transaction Log You could define some rules for Transaction growth: You can have a Log Shrink, but Perform a regular t-log backup would be better then run periodically the shrink command! Slide 9

Maintenance: Transaction Log One way to shrink immediately would be using the user interface: Slide 10

Maintenance: Transaction Log This an example Shrinking the Database and Log by command would be helping in of worse of cases: truncate log and The size of the log files are physically reduced when:shrink database A DBCC SHRINKDATABASE statement is executed. using a little A DBCC SHRINKFILE statement referencing a log file is executed. SQL Script More information on TN 599 or 837 on WDN Site Slide 11

Maintenance: DB Fragmentation Fragmentation occurs when data is modified in a table. When you insert or update data in a table (via INSERT or UPDATE), the table s corresponding indexes are affected. The amount of fragmentation can be analyzed by using the sys.dm_db_index_physical_stats function. Fragmentation can be reduced by rebuilding and/or reorganizing indexes. The DB fill factor can help reduce fragmentation. Physical disk fragmentation can also help. Slide 12

Maintenance: DB Fragmentation TIP DBCC INDEXDEFRAG ALTER INDEX REORGANIZE DBCC DBREINDEX ALTER INDEX REBUILD Slide 13

Maintenance: clean Alarm DB The Alarm DB Purge and Archive utility can be used to reduce the amount of records in the DB. Use a known query to delete the duplicates alarms periodically (fixed on ASP 2012) This DB is affected by a huge Fragmentation, then typically is not an issue, but could reduce the performance Slide 14

Maintenance: Galaxy Repository DB Many of the GR DB maintenance tasks are wrapped by ArchestrA components: Backup/Restore can be done from SMC, or from PowerShell script DB Scrubber utility Index reorganization, stats update, and SQL Server Log cleaning must be setup by a DB admin. You can manually truncate the Change Log Table. You could execute some helpful stored procedure Slide 15

Maintenance: Runtime DB The Runtime DB size is not affected by the amount of history data. General settings let you purge event and summary data. You need to manually purge the change log (ModLogTracking). Avoid creating custom tables in the Runtime DB. Slide 16

Maintenance: End! And now? All the questions and doubts can be later treated in Hands On, Slide 17

Troubleshooting and Diagnostic Tools There are several tools that will allow you to: 1. Detect errors and exceptions 2. Monitor the SQL Server 3. Monitor the performance with counters 4. Log the SQL statements executed 5. Know system function / stored procedure 6. Understand SQL in ArchestrA Script Slide 18

Detect errors: Logging Mechanisms Useful logs to keep in mind: SQL Server Log Export.log,.txt,.csv Filter condition Search Windows Event Viewer Slide 19

Monitor SQL: Activity Monitor Use Activity Monitor to obtain information about SQL Server processes and how these processes affect the current instance of SQL Server. The first pane shows the following graphical displays of instance information: % Processor Time: The percentage of elapsed time that the processor spends to execute non-idle threads for the instance across all CPUs. Waiting Tasks: The number of tasks that are waiting for processor, I/O, or memory resources. Database I/O: The transfer rate, in megabytes per second, of data from memory to disk, disk to memory, or disk to disk. Batch Requests/sec: The number of SQL Server batches that are received by the instance. Slide 20

Monitor SQL: Activity Monitor Processor Time %: What could be helpful to know We can filter by We can sort by We can observe Session ID 66 is locked by Session ID 72 There was a transaction in progress that has not committed yet, and is still causing a table lock Slide 21

Monitor SQL: Activity Monitor Resource Wait: Nice to know all the operations that were consuming resources Data file I/O: Nice to know all the Database files that were involved in R/W ops. Slide 22

Monitor SQL: Activity Monitor Recent Expensive Queries: Getting a look around This would be useful to understand the customization, in order to improve eventually Slide 23

Performance Monitor You cannot control what you don t measure MS SQL Server exposes a set of performance counters for virtually every subsystem These counters allow you to create a performance baseline Slide 24

Performance Monitor Collects detailed information about the utilization of operating system resources. SQL Server provides extensions to the Performance Monitor tool to track a variety performance counters. It allows you to track memory, disk, processor, and the network performance. Allows you to track both system-wide and SQL Server counters. Tracing can occur in real-time or captured as a log. Slide 25

Performance Monitor: SQL Pen Object(Instance) SQLServer:Access Methods Counter FreeSpace Scans/sec Description Rate of inserts into tables with no indexes Target Value No target. Should be monitored over time. SQLServer:Access Methods Full Scans/sec Rate of unrestricted full scans on tables indexes No target. Should be monitored over time. SQLServer:Latches Total Latch Wait Time Wait time before latch requests are acquired No target. Should be monitored over time. SQLServer:Locks Lock Timeouts/sec Avg = 0 SQLServer:Locks Lock Wait Time SQLServer:Locks Number of Deadlocks/sec Processes Blocked Amount of locks that timeout and exit Wait time before a lock can be acquired Amount of deadlocks Amount of processes that are denied connection to the DB Total number of user connections Avg = 0 SQLServer:General Statistics SQLServer:General Statistics Slide 26 User Connections Avg < 10 ms Avg = 0 No target. Should be monitored over time.

Performance Monitor and Profiler Trace Slide 27

SQL Server Profiler Is a rich interface to create and manage traces and analyze and replay trace results. Trace each query into SQL Server DB Analyze performance and diagnose problems. Debug a T-SQL statements and Stored Procedures. Replay SQL Server activity in a simulation. Combine with other debug instruments Slide 28

SQL Server Profiler: How to Run General Setting Trace Name Trace Provider name Trace Provider Type Use template: Slide 29 Standard TSQL TSQL Duration TSQL Lock And so on Save to file {.trc, xml, } Save to table Enable trace stop time

SQL Server Profiler: How to Run Slide 30

SQL Server Profiler: How to Run Slide 31

SQL Server Profiler: How to Run This would be a standard way to catch only the SQL query and Stored procedure will be executed Slide 32

SQL Server Profiler: the Results Slide 33

SQL Server Profiler: Debug and Execute Slide 34

SQL Server Profiler: Lock Result Slide 35

SQL Server Profiler: in Batch mode! Run, Stop and Clear! And then This can be executed on demand, on stored procedure, on scheduled task!!! You not need to be in front of the Monitor chasing the issues happening!!! All the Setting we have earlier selected! Once you have defined all the information need to be collected, you can create a Batch Script! Slide 36

SQL Server Profiler: wall of text In this manner is very difficult analyze the data flow! And retrieving the issue stuck point can be requiring more and more time, and we risk to have a misunderstanding! Slide 37

SQL Server Profiler: External free tool QURE Workload Analyzer Slide 38

SQL Server: PID and SPID Client Process ID report exactly the PID of Task Manager or Process Explorer. It has used to identify the Application that still running something into SQL Server Database Slide 39 A SPID in SQL Server is a Server Process ID. These process ID s are essentially sessions in SQL Server. Every time an application connects to SQL Server, a new SPID is created. This connection has a defined scope and memory space and cannot interact with other SPIDs. The term SPID is synonymous with Connection, or Session.

Diagnostic Query: From SPID to SQL TIP Get Last Running Query Based on SPID Slide 40

Diagnostic Query:Concatenate SPID TIP See Who Is Blocking Your SQL Server Slide 41

Diagnostic Query: Userful Query Execution related dynamic objects provide information about current sessions, connections, client requests, opened cursors and execution plans. These objects can be particularly helpful in identifying resource bottlenecks such as CPU, memory or disk. You can also peruse execution related objects to troubleshoot blocking issues. Each object in this category is prefixed with "dm_exec. TIP Sys.dm_exec_query_stats provides a wealth of performance statistics for cached query plans. Slide 42

Diagnostic Query:...on CPU TIP Top 10 most CPU intensive SQL Statements Slide 43

Diagnostic Query:...by frequency TIP Top 10 Stored Procedures ordered by the frequency of their execution Slide 44

Diagnostic Query:...by recompile TIP most frequently re-compiled statements Slide 45

Diagnostic Query:...by I/O TIP The most I/O intensive queries: Slide 46

Diagnostic Query: CTRL+1 and CTRL+2 Key short cut on Management Studio: sp_who: CTRL+1 SP_LOCK SP_WHO Provides information about current Microsoft SQL Server users and processes. The information returned can be filtered to return only those processes that are not idle. sp_lock: CTRL+2 Reports information about locks. Slide 47

Tips: about SQL Server Customization Nice To Know!!! Last part will be treating some topics that could help out us with software customization. Slide 48

Tips: SQL Server CLR Integration The Common Language Runtime (CLR) is the heart of the Microsoft.NET Framework and provides the execution environment for all.net Framework code. With the CLR hosted in Microsoft SQL Server (called CLR integration), you can create stored procedures, triggers, user-defined functions, user-defined types, and user-defined aggregates in managed code. Because managed code compiles to native code prior to execution, you can achieve significant performance increases in some scenarios. How to Enable CLR on SQL server: Slide 49

Tips: SQL Server CLR Integration On Sql Server side we can see all the assemblies hosted. This is how to add an assembly on SQL side: REMIND: If you need to have a UNSAFE permission, you have to change the database TRUSTWORTHY Slide 50

Tips: SQL Server CLR Integration Only few rules creating your.net Assembly for SQLSrv Hosting: 1. Remove the Namespace 2. Using Microsoft.SqlServer.Server 3. Use [SqlFunction] Attribute Slide 51

Tips: SQL Server CLR Integration Mind to create the Function on SQL side: The name of SQL Function parameters need to match Exactly with name of Net Function parameters!!! Slide 52

Tips: SQL Server CLR Integration H O W i t W O R K S This would be a simple regular expression, but can work also with something of strongest!!! i.e. email RegExp: ^[a-z._-]+\@[a-z._-]+\.[a-z]{2,4}$ Slide 53

Tips: Optimizing your customization Everything can be improved! Next few slide will show you how to write a performing query, what to use, what would best to avoid, the means of some SQL clause, Slide 54

Tips: Optimize SQL Queries When Identified Long-Running Query: Put it on SQLS Management Studio and start to analyze the cause of slowness: 1. Using SET statements: SHOWPLAN_ALL, STATISTIC IO/TIME/PROFILE ON 2. Using SQL Query Analyzer options Slide 55

Tips: Optimize SQL Queries Analyzing the Results: Physical Operation: Avoid Table Scan Estimated cost: I/O vs CPU intensive Estimated Number of Execution Avoid no needed loops Estimate Row Size: Avoid Large size Fastest query improve your application Slide 56

Tips: Writing SQL Queries How to write an efficient query: Write correctly formed queries, using correct ON clause and avoid DISINCT Return only the rows and columns needed, avoid * and use TOP x Avoid expensive operators such as NOT LIKE. Avoid explicit or implicit functions in WHERE clauses. Use stored procedures or parameterized queries. Minimize cursor use. Avoid long actions in triggers, or best, Avoid Trigger! Use temporary tables and table variables appropriately. Limit query and index hints use. Use SET NO COUNT ON NOT/IN vs NOT/EXIST especially with null value matching Use with (nolock/readpast) to have a dirty read Slide 57

Tips: Writing SQL Queries Next video will show the difference writing a performing query. Slide 58

SQL Server from ArchestrA scripts The recommended method is to use the included SQL Server Data Components: $SQLData object, scripting library, and SQLGrid control. These components offer a lot of flexibility: Connection pooling Transaction support Synchronous and Asynchronous execution Slide 59

SQL Server from ArchestrA scripts If you absolutely need to use.net scripting to access the DB: Ensure that scripts are asynchronous. Use Multiple Active Result Set option (MARS) Manage the DB connection lifecycle. Use Stored Procedures Use System.Data.SqlClient Don't care about all these recommendations to make an Slide 60

Question/ feedbacks/ request Slide 61

Hands on Time! Custom SQL Project Project: Replicate the Historian tag on Performance Monitor Knowledge:.NET, SQL, and Performance Monitor Tools Slide 62

Hands on Time! Summary Project: Replicate the Historian tag on Performance Monitor Step 1: Creating.NET Function Step 2: Creating SQL Function Step 3: Creating SQL Job scheduled each minute Step 4: Observing the results on Process Monitor Slide 63

Hands on Time! Create.NET Function Slide 64

Hands on Time! Create SQL Function Slide 65

Hands on Time! Create SQL Job Slide 66

Hands on Time! See Perf. Monitor! Slide 67

Question/ feedbacks/ request Thanks!!! Slide 68

Slide 69