We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Advanced SQL Server Performance Tuning

Mike West

COURSE REVIEWS: 

Read more

COURSE REVIEWS: 

"It's not what I thought it would be. It covers limited topics and does not present a solid step by step approach to approaching a SQL server you've never had a dealing with and finding the performance issues and fixing them."  Albert

"This is the 9th Mike West course I have taken. The dude really know his stuff and is able to relay to the listener in a very approachable way. Quick note if you do the exercises yourself - you want to give SQL Server time to "catch up" Apkambledev

"Good & very well explain especially the Live Demo step by step. The way explanation capture the attention to listen & very interesting." Micheale.See

"Great ,Learning many things. thanks . " Mittal

"Awesome tutorial."  Sivram

"This is a great quick course with many take aways. It's short and to-the-point, which's great for people with familiarity with the subject." - Said

"Excellent course, very good examples" Cesar

"The course is pretty clear so far albeit, slightly brief."  Ken

"Its excellent very much informative."  Afroz

"A good course with information and tips that apply to the real world." Ian B

"In depth."  Sherrie

"Thanks for the great course. " Andrey

"Nice course. Simple and crisp."  M1981

"Great course. The things that Mike taught are practical and can be applied in the real world immediately." Ricky V.

"This gives a deep diving scenario."  Anish

COURSE 

In my first course we laid the groundwork by tuning OUR instances with a top down approach.

WE will continue on that path with this course.

Even though the course has the word “Advanced" in it, there's

It's “advanced" in that I'll take more time explaining how to implement these recommendations.

The course is still very much a "buttons and Knobs" course. This simply means WE won't dive too deeply into the minutia. We are still going to focus on items that are easily implemented. Some features will have a level of contention associated with them in the SQL Server community. It will be up to you decide to implement or not.

Additionally, some of the concepts may be new to even more senior level resources so I want to make sure I'll cover the why of the topic as well as the how.

This course will give YOU deeper insight into what it takes to become a skilled   Once thought of as an art, performance tuning is nothing more than a series of processes that seek to accomplish TWO basic goals.

The FIRST one is to increase the response time for a given transaction or set of transactions.

The SECOND one is reduce resource consumption. On the surface this sounds simple but nothing could be further from the truth.

Take the next step on YOUR performance tuning journey and SIGN UP now.

Enroll now

What's inside

Learning objectives

  • By the end of this course you will have a systematic process approach and all the necessary tools needed to begin your journey as a sql server performance tuner.
  • In this course we will dive a little into performance tuning. we will look caching, hints, filters, trace flags and best coding practices.
  • In the course we will use statistics and query plans to analyze the effectiveness of our indexes.

Syllabus

Introduction

We are going to cover 4 main areas during throughout this course.

  1. Caching Issues
  2. Hints and Filters
  3. Trace Flags
  4. Real World Coding Best Practices

While this course is more advanced than my previous one on performance tuning my target audience remains mid to senior level SQL Server resources.

Read more

The deeper you delve into the internals of SQL Server the more nuances arise. All of my recommendations should be tested in each environment.

For example, many senior level SQL Server DBA add trace flags to their default builds. However, if you don't understand how the flag works or what the secondary effects are then please don't add it.

A little about me. It's the same canned BIO for all my courses so If you've read it once you can skip it here. I do highly recommend you join the LinkedIN blog. I blog there regularly and interact with some of the most skilled SQL resources on the planet.

Section 1 Summary
Tools. These Two Tools Really Help Us Get A Deeper Grain To Our Tuning

This is one of the most used approaches to performance tuning. If showplan analysis does't give us what we are looking for then the reduction in logical reads often will. Keep in mind, you are looking for wider ranges here. If you have approach that has 50 logical reads and another one with 65 then that's not much of a difference. If you cut the logical reads in half.. that's a big difference.

This isn't a course on query plan analysis but we will look at a few. I recommend using this free tool for viewing showplans. It's superior to the native one.

This is Microsoft's learning database. It's available on codeplex and is used in many tutorials and demonstrations. We need to download it and attach or restore it to our instance we will be learning on.

This is where you download the course content. Some of the content has not been included because of it's simplicity.

NOTE: Please keep in mind simple queries and code is not included in downloads. Typing those out will help you cement them in memory.

Summary 2 Summary
Section 2 Quiz
Caching Issues

All roads for most of our transactions in SQL Server lead to and from the buffer pool. Understanding the basics is paramount to understanding performance tuning concepts.

SQL Server has a pool of memory that is used to store both execution plans and data buffers. The percentage of the pool allocated to either execution plans or data buffers fluctuates dynamically, depending on the state of the system. The part of the memory pool that is used to store execution plans is referred to as the procedure cache


Your plan cache stores details about all the SQL statements that have been executed over time.Let's take a look at the columns we need to be familiar with for analyzing it.

Using parameters or parameter markers in Transact-SQL statements increases the ability of the relational engine to match new SQL statements with existing, previously-compiled execution plans.

NOTE: Many of these examples have very simple stored procedures or DBCCs. I haven't included these in the content download because of their simplicity.

Let's walk through what parameter sniffing is and why it's a problem.

Problems arise when the values queried in a table are not evenly distributed. If one parameter value returns 10 rows and another parameter value returns 10,000,000 rows, it would be best if SQL Server used different execution plans for the different values of the parameter. So... how do we fix this issue.

Plan guides can be useful when a small subset of queries in a database application provided by a third-party vendor are not performing as expected.

Let's create some simple plan guides. Plan guides can be created in SSMS or via transact.

Let's review what we've covered.

Hints and Filters

If you want to compare the effectiveness of an index you recently added then this trick will give you a side by side comparison. You can screen print it to show index effectiveness.

A filtered index is an often unused tool that can have vast improvements on performance.

Sparse columns work well where a high proportion of the data in a column is NULL, because negligible storage space is used for the NULL representation. A table that is wide in theory can be made narrow in practice by implementing sparse columns, and the addition of filtered indexes provides effective searches on the sparse data. Sparse columns support the use of check constraints, as long as the constraints allow NULL values (a sparse column requirement).

In this video we significantly reduce logical reads and save a lot of space on the location of the filtered index on disk.

Section 4 Summary
Section 4 Quiz
Trace Flags. If You Feel Safe Using Them - And I Do, Then Start Here.
Trace Flag: -T4199
Trace Flag: -T1117

Trace flag 3226 simply stops SQL Server from writing backup successful messages to the error log.

Section 5 Summary
Section 5 Quiz
Real World Coding Best Practices Put To The Test

Does returning more columns in your queries really matter? Are you sure?

SELECT * versus SELECT Row1, Row2, Row3.

It matters alright but not for the reason you may think it does. Why using schema qualified names in your code is a great idea.

It one of the most used "best practices" when discussing transact SQL. Does it do what you think it does and should we use it?

PS - We should use it but why?

One long DELETE or UPDATE will hold many other transactions hostage. Batching up your deletes and updates is a great practice in jobs and in code.

SQL Server does a lot of things really well. Sorting is not one of them. Sort using the language you are authoring your application in.

Most applications are littered with Implicit Conversions. It should be this way. Simply matching the columns in the table with your code helps eliminate this.

I'm not really interested in a side by side performance comparison between temp tables, table variables and CTEs, but I'd like to take the stress off of tempdb. This is one really straightforward way to accomplish that.

Section 6 Summary
Section 6 Quiz
Miscellaneous

If you know what it does then you'll probably enable it. Let's cover what this "knob" does and why we should turn it on.

I've added some comments from SQL Server experts who help reinforce it's usage.

Section 7 Summary
Conclusion

Congratulation!! You've completed this Advanced Course On SQL Server Performance Tuning.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides a step-by-step approach to SQL Server performance tuning, making it suitable for both new and experienced learners
Teaches the importance of using cache and filters, which are essential practices for improving database performance
Examines different trace flags, empowering learners to enhance the performance of their SQL Server systems
Covers real-world coding best practices, helping learners effectively improve the performance of their SQL queries
Provides access to additional content and resources for further learning, expanding learners' knowledge
Assumes prior knowledge of SQL Server, making it suitable for learners with intermediate to advanced skills
May not provide sufficient depth for experts seeking highly specialized knowledge
Emphasizes practical implementation over theoretical concepts, providing immediate value

Save this course

Save Advanced SQL Server Performance Tuning to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Advanced SQL Server Performance Tuning. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Advanced SQL Server Performance Tuning will develop knowledge and skills that may be useful to these careers:
Database Administrator
Database Administrators maintain and administer database systems to ensure the security, integrity, and optimal performance of data. They work with other IT professionals to design and implement database systems, as well as develop and implement backup and recovery plans. This course provides valuable knowledge and skills that can help you become a successful Database Administrator by covering topics such as performance tuning, caching, hints, filters, and trace flags. Additionally, the course provides hands-on experience with real-world coding best practices, which is essential for success in this role.
Data Architect
Data Architects design, develop, and maintain data management solutions to meet the needs of an organization. They work with stakeholders to understand data requirements, and then design and implement data models and databases. This course provides a strong foundation for understanding the principles and practices of data architecture. It covers topics such as data modeling, data warehousing, and performance tuning. By completing this course, you will gain the skills and knowledge necessary to succeed as a Data Architect.
Software Engineer
Software Engineers design, develop, and maintain software systems. They work with other IT professionals to gather requirements, design and implement software solutions, and test and deploy software applications. This course provides a strong foundation for understanding the principles and practices of software engineering. It covers topics such as software design, software development, and software testing. By completing this course, you will gain the skills and knowledge necessary to succeed as a Software Engineer.
Data Analyst
Data Analysts collect, analyze, and interpret data to help organizations make informed decisions. They work with stakeholders to understand data requirements, and then design and implement data analysis plans. This course provides a strong foundation for understanding the principles and practices of data analysis. It covers topics such as data collection, data analysis, and data visualization. By completing this course, you will gain the skills and knowledge necessary to succeed as a Data Analyst.
Business Analyst
Business Analysts work with stakeholders to understand business needs, and then design and implement solutions to meet those needs. They may work on projects such as process improvement, system implementation, or organizational change. This course provides a strong foundation for understanding the principles and practices of business analysis. It covers topics such as business process modeling, requirements gathering, and solution design. By completing this course, you will gain the skills and knowledge necessary to succeed as a Business Analyst.
Project Manager
Project Managers plan, execute, and close projects. They work with stakeholders to define project scope, develop project plans, and manage project resources. This course provides a strong foundation for understanding the principles and practices of project management. It covers topics such as project planning, project execution, and project closure. By completing this course, you will gain the skills and knowledge necessary to succeed as a Project Manager.
Systems Analyst
Systems Analysts work with stakeholders to understand system requirements, and then design and implement system solutions. They may work on projects such as system development, system integration, or system maintenance. This course provides a strong foundation for understanding the principles and practices of systems analysis. It covers topics such as systems analysis, systems design, and systems implementation. By completing this course, you will gain the skills and knowledge necessary to succeed as a Systems Analyst.
Technical Writer
Technical Writers create and maintain technical documentation, such as user manuals, training materials, and white papers. They work with subject matter experts to gather information and then write and edit technical content. This course provides a strong foundation for understanding the principles and practices of technical writing. It covers topics such as technical writing, editing, and documentation management. By completing this course, you will gain the skills and knowledge necessary to succeed as a Technical Writer.
Data Scientist
Data Scientists use data to solve business problems. They work with stakeholders to understand data requirements, and then design and implement data science solutions. This course provides a strong foundation for understanding the principles and practices of data science. It covers topics such as data science, machine learning, and artificial intelligence. By completing this course, you will gain the skills and knowledge necessary to succeed as a Data Scientist.
Database Developer
Database Developers design, develop, and maintain databases. They work with stakeholders to understand data requirements, and then design and implement database solutions. This course provides a strong foundation for understanding the principles and practices of database development. It covers topics such as database design, database development, and database administration. By completing this course, you will gain the skills and knowledge necessary to succeed as a Database Developer.
Software Tester
Software Testers test software applications to ensure they meet requirements and function as expected. They work with other IT professionals to design and execute test plans, and then analyze test results and report defects. This course provides a strong foundation for understanding the principles and practices of software testing. It covers topics such as software testing, test planning, and test execution. By completing this course, you will gain the skills and knowledge necessary to succeed as a Software Tester.
IT Manager
IT Managers plan, organize, and direct the activities of an IT organization. They work with senior management to develop IT strategies and policies, and then implement and manage IT systems and services. This course provides a strong foundation for understanding the principles and practices of IT management. It covers topics such as IT strategy, IT governance, and IT service management. By completing this course, you will gain the skills and knowledge necessary to succeed as an IT Manager.
Computer Programmer
Computer Programmers write and maintain computer programs. They work with stakeholders to understand program requirements, and then design and implement program solutions. This course provides a strong foundation for understanding the principles and practices of computer programming. It covers topics such as computer programming, software development, and software testing. By completing this course, you will gain the skills and knowledge necessary to succeed as a Computer Programmer.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Advanced SQL Server Performance Tuning.
Classic in the SQL Server community and many consider it the authoritative reference for more advanced topics. Much of the material in the second half of this course is based on the concepts taught in this book. This book is also a valuable reference tool.
This book is another great general reference for SQL Server performance database administrators. It will provide supplemental material for Sections 2 and 3 of this course.
Provides a lot of useful information on performance tuning and will provide additional background for many of the concepts in this course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Advanced SQL Server Performance Tuning.
Real-world Scenarios: SQL Server Query Tuning in Action
Most relevant
Effective Query Analysis with SQL Server Tools
Most relevant
SQL Server Performance Tuning Part 2
Most relevant
SQL Server Essentials, from Scratch
Most relevant
SSRS Data Sourcing Playbook
70-461, 761: Querying Microsoft SQL Server with Transact...
SQL Server Performance: Indexing Basics
Analyzing SQL Server Query Plans
How To Begin Your Career As a SQL Server DBA
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser