Before attending this course, students must:
- Have working knowledge of data storage. Specifically, knowledge
about row layout, fixed length field placement and varying length
- Be familiar with index structures and index utilization.
Specifically, they must understand the interaction between
non-clustered indexes, clustered indexes and heaps. They must know
why a covering index can improve performance.
- Have had hands-on database developer experience. Specifically,
three years of experience as a full-time database developer in an
- Be familiar with the locking model. Specifically, students should
have an understanding of lock modes, lock objects and isolation
levels and be familiar with process blocking.
- Understand Transact-SQL syntax and programming logic.
Specifically, students should be completely fluent in advanced
queries, aggregate queries, subqueries, user-defined functions,
cursors, control of flow statements, CASE expressions, and all
types of joins.
- Be able to design a database to third normal form (3NF) and know
the trade offs when backing out of the fully normalized design
(denormalization) and designing for performance and business
requirements in addition to being familiar with design models, such
as Star and Snowflake schemas.
- Have strong monitoring and troubleshooting skills, including
using monitoring tools.
- Have basic knowledge of the operating system and platform. That
is, how the operating system integrates with the database, what the
platform or operating system can do, and how interaction between
the operating system and the database works.
- Have basic knowledge of application architecture. That is, how
applications can be designed in three layers, what applications can
do, how interaction between the application and the database works,
and how the interaction between the database and the platform or
operating system works.
- Know how to use a data modeling tool.
- Be familiar with SQL Server 2005 features, tools, and
- Have a Microsoft Certified Technology Specialist: Microsoft SQL
Server 2005 credential - or equivalent experience.
- In addition, it is recommended, but not required, that students
- Course 2779, Implementing a Microsoft SQL Server 2005
- Course 2780, Maintaining a Microsoft SQL Server 2005
This three-day instructor-led workshop provides database
developers working in enterprise environments using Microsoft® SQL
ServerT 2005 the knowledge and skills to evaluate and improve
queries and query response times. The workshop focuses on
systematic identification and optimization of database factors that
impact query performance.
This course is intended for current professional database
developers who have three or more years of on-the-job experience
developing SQL Server database solutions in an enterprise
Elements of this syllabus are subject to change.
This course includes the following modules:
Measuring Database Performance
- Importance of Benchmarking
- Key Measures for Query Performance: Sysmon
- Key Measures for Query Performance: Profiler
- Guidelines for Identifying Locking and Blocking
Optimizing Physical Database Design
- Performance Optimization Model
- Schema Optimization Strategy: Keys
- Schema Optimization Strategy: Responsible Denormalization
- Schema Optimization Strategy: Generalization
Optimizing Queries for Performance
- Performance Optimization Model: Queries
- What Is Query Logical Flow?
- Considerations for Using Subqueries
- Guidelines for Building Efficient Queries
Refactoring Cursors into Queries
- Performance Optimization Model: Query-Set-based solutions
- Five Steps to Building a Cursor
- Strategies for Refactoring Cursors
Optimizing an Indexing Strategy
- Performance Optimization Model: Indexes
- Considerations for Using Indexes
- Best Uses of the Clustered Index
- Best Practices for Non-Clustered Index Design
- How to Document an Indexing Strategy
- Performance Optimization Model: Locking and Blocking
- Multimedia - "How to Use Efficient Queries to Reduce Locking
- Strategies to Reduce Locking and Blocking