6232B: Implementing a Microsoft SQL Server 2008 R2 Database Course Overview This instructor-led course is intended for Microsoft SQL Server database developers who are responsible for implementing a database on SQL Server 2008 R2. This course will ensure that students learn the skills and best practices on how to use SQL Server 2008 R2 product features and tools related to implementing a database server. Course Outline Module 01 - Introduction to SQL Server 2008 R2 and its Toolset Lesson 1: Introduction to the SQL Server Platform SQL Server Architecture SQL Server Components SQL Server Instances SQL Server Editions SQL Server Versions Lesson 2: Working with SQL Server Tools Connecting from Clients and Applications Software Layers for Connections SQL Server Management Studio Demo 2A - SQL Server Management Studio Business Intelligence Development Studio Demo 2B - Business Intelligence Development Studio Books Online Lesson 3: Configuring SQL Server Services SQL Server Configuration Manager SQL Server Services Network Ports and Listeners Creating Server Aliases 1hr 36m Other SQL Server Tools Demo 3A - SQL Server Profiler Module 01 Review Module 02 - Working with Data Types Lesson 1: Using Data Types Introducing Data Types Exact Numeric Data Types Working with IDENTITY Approximate Numeric Data Types Date and Time Data Types Unique Identifiers NULL or NOT NULL Columns Demo 1A - Working with Numeric Data Types Lesson 2: Working with Character Data Understanding Unicode Character Data Types Understanding Collations 1hr 19m
Demo 2A - Working with Character Data Lesson 3: Converting Data Types Using CAST Using CONVERT Implicit Data Conversion Common Conversion Issues Demo 3A - Common Conversion Issues Lesson 4: Working with Specialized Data Types timestamp and rowversion Alias Data Types Other Data Types Demo 4A - rowversion Data Type Module 02 Review Module 03 - Designing and Implementing Tables Lesson 1: Designing Tables What is a Table? Normalizing Data Common Normalization Forms Demo 1A Normalization Primary Keys Foreign Keys Working with System Tables Lesson 2: Working with Schemas What is a Schema? Object Name Resolution Creating Schemas Demo 2A Schemas Lesson 3: Creating and Altering Tables Creating Tables Dropping Tables Altering Tables Demo 3A - Working with Tables Temporary Tables Demo 3B - Temporary Tables Computed Columns Demo 3C - Computed Columns Module 03 Review 51m Module 04 - Designing and Implementing Views Lesson 1: Introduction to Views What is a View? Types of Views Advantages of Views Working with System Views Dynamic Management Views Demo 1A - System and Dynamic Management Views Lesson 2: Creating and Managing Views Creating Views Dropping Views 52m
Altering Views Ownership Chains and Views Sources of Information About Views Updatable Views Obfuscating View Definitions Demo 2A - Implementing Views Lesson 3: Performance Considerations for Views Views and Dynamic Resolution Nested View Considerations Partitioned Views Demo 3A - Views and Performance Module 04 Review Module 05 - Planning for SQL Server 2008 R2 Indexing Lesson 1: Core Indexing Concepts How SQL Server Accesses Data The Need for Indexes Index Structures Selectivity, Density and Index Depth Index Fragmentation Demo 1A - Viewing Index Fragmentation Lesson 2: Data Types and Indexes Numeric Index Data Character Index Data Date-Related Index Data GUID Index Data BIT Index Data Indexing Computed Columns Lesson 3: Single Column and Composite Indexes Single Column vs. Composite Indexes Ascending vs. Descending Indexes Index Statistics Demo 3A - Viewing Index Statistics Module 05 Review 38m Module 06 - Implementing Table Structures in SQL Server 2008 R2 Lesson 1: SQL Server Table Structures What is a Heap? Operations on Heaps Forwarding Pointers What is a Clustered Index? Operations on Clustered Indexes Unique vs. Non-Unique Clustered Indexes Demo 1A - Rebuilding Heaps Lesson 2: Working with Clustered Indexes Creating Clustered Indexes Dropping a Clustered Index Altering a Clustered Index Incorporating Free Space in Indexes 46m
Demo 2A - Clustered Indexes Lesson 3: Designing Effective Clustered Indexes Characteristics of Good Clustering Keys Appropriate Data Types for Clustering Keys Creating Indexed Views Indexed View Considerations Demo 3A - Indexed Views Module 06 Review Module 07 - Reading SQL Server 2008 R2 Execution Plans Lesson 1: Execution Plan Core Concepts Why Execution Plans Matter Query Execution Phases What is an Execution Plan? Actual vs. Estimated Execution Plans What is an Execution Context? Execution Plan Formats Demo 1A - Viewing Execution Plans in SSMS Lesson 2: Common Execution Plan Elements Table and Clustered Index Scans and Seeks Nested Loops and Lookups Merge and Hash Joins Aggregations Filter and Sort Data Modification Demo 2A - Common Execution Plan Elements Lesson 3: Working with Execution Plans Methods for Capturing Plans Demo 3A - Capturing Plans in Activity Monitor Re-Executing Queries Execution Plan Related DMVs Demo 3B - Viewing Cached Plans Module 07 Review 49m Module 08 - Improving Performance through Nonclustered Indexes Lesson 1: Designing Effective Nonclustered Indexes What is a Nonclustered Index? Nonclustered Indexes Over Heaps Nonclustered Indexes Over Clustered Indexes Methods for Obtaining Index Information Demo 1A - Obtaining Index Information Lesson 2: Implementing Nonclustered Indexes Creating Nonclustered Indexes Performance Impact of Lookups in Nested Loops INCLUDE Clause Dropping or Altering Nonclustered Indexes Filtered Indexes Demo 2A - Nonclustered Indexes Lesson 3: Using the Database Engine Tuning Advisor SQL Server Profiler 59m
Demo 3A - SQL Server Profiler Database Engine Tuning Advisor Demo 3B - Database Engine Tuning Advisor Module 08 Review Module 09 - Designing and Implementing Stored Procedures Lesson 1: Introduction to Stored Procedures What is a Stored Procedure? Benefits of Stored Procedures Working with System Stored Procedures Statements not Permitted Demo 1A - Working with System Stored Procedures and Extended Stored Procedures Lesson 2: Working with Stored Procedures Creating a Stored Procedure Executing Stored Procedures Altering a Stored Procedure Dropping a Stored Procedure Stored Procedure Dependencies Guidelines for Creating Stored Procedures Obfuscating Stored Procedure Definitions Demo 2A - Stored Procedures Lesson 3: Implementing Parameterized Stored Procedures Working with Parameterized Stored Procedures Using Input Parameters Using Output Parameters Parameter Sniffing and Performance Demo 3A - Stored Procedure Parameters Lesson 4: Controlling Execution Context Controlling Execution Context The EXECUTE AS Clause Viewing Execution Context Demo 4A - Viewing Execution Context Module 09 Review 1hr 1m Module 10 - Merging Data and Passing Tables Lesson 1: Using the MERGE Statement MERGE Statement WHEN MATCHED WHEN NOT MATCHED BY TARGET WHEN NOT MATCHED BY SOURCE OUTPUT Clause and $action MERGE Determinism and Performance Demo 1A - MERGE Statement Lesson 2: Implementing Table Types Reducing Round-Trip Overhead Options for Passing Lists as Parameters Demo 2A - Passing Delimited Lists Introduction to the TABLE Type Populating TABLE Types with Row Constructors Demo 2B - TABLE Types and Row Constructors 39m
Lesson 3: Using TABLE Types As Parameters TABLE Input Parameters for Stored Procedures Using Row Constructors to Populate Parameters Demo 3A - Passing Tables to Stored Procedures Module 10 Review Module 11 - Creating Highly Concurrent SQL Server 2008 R2 Applications Lesson 1: Introduction to Transactions What are Transactions? Auto Commit Transactions Explicit Transactions Implicit Transactions Transaction Recovery Considerations for using Transactions Demo 1A Transactions Lesson 2: Introduction to Locks Methods of Concurrency Control What are Locks? Blocking vs. Locking What Concurrency Problems are Prevented by Locking? Lockable Resources Types of Locks Lock Compatibility Lesson 3: Management of Locking Locking Timeout Lock Escalation What are Deadlocks? Locking-related Table Hints Methods to View Locking Information Demo 3A - Viewing Locking Information Lesson 4: Transaction Isolation Levels SQL Server Transaction Isolation Levels Read Committed Snapshot Isolation-related Table Hints Module 11 Review 52m Module 12 - Handling Errors in T-SQL Code Lesson 1: Understanding T-SQL Error Handling Where T-SQL Errors Occur Types of Errors What's in an Error? Error Severity Demo 1A - Error Types and Severity Lesson 2: Implementing T-SQL Error Handling Raising Errors Using @@ERROR Errors and Transactions Transaction Nesting Errors Raising Custom Errors 40m
Creating Alerts When Errors Occur Demo 2A - T-SQL Error Handling Lesson 3: Implementing Structured Exception Handling TRY CATCH Block Programming Error Handling Functions Catchable vs. Non-catchable Errors TRY CATCH and Transactions Errors in Managed Code Demo 3A - Deadlock Retry Module 12 Review Module 13 - Designing and Implementing User-Defined Functions Lesson 1: Overview of Functions Types of Functions System Functions Lesson 2: Designing and Implementing Scalar Functions What Is a Scalar Function? Creating Scalar Functions Deterministic and Non-deterministic Functions Demo 2A - Scalar Functions Lesson 3: Designing and Implementing Table-valued Functions What are Table-valued Functions? Inline Table-Valued Functions Multi-statement Table-valued Functions Demo 3A - Implementing Table-valued Functions Lesson 4: Implementation Considerations for Functions Performance Impacts of Scalar Functions Performance Impacts of Multi-statement Table-valued Functions Controlling Execution Context The EXECUTE AS Clause Guidelines for Creating Functions Demo 4A - Execution Context Lesson 5: Alternatives to Functions Comparing Table-valued Functions and Stored Procedures Comparing Table-valued Functions and Views Module 13 Review 41m Module 14 - Ensuring Data Integrity through Constraints Lesson 1: Enforcing Data Integrity Discussion: Data Integrity Across Application Layers Types of Data Integrity Options for Enforcing Data Integrity Lesson 2: Implementing Domain Integrity Data Types Column Nullability DEFAULT Constraints CHECK Constraints Demo 2A - Data and Domain Integrity Lesson 3: Implementing Entity and Referential Integrity PRIMARY KEY Constraints UNIQUE Constraints 42m
FOREIGN KEY Constraints Cascading Referential Integrity Considerations for Constraint Checking Demo 3A - Entity and Referential Integrity Module 14 Review Module 15 - Responding to Data Manipulation via Triggers Lesson 1: Designing DML Triggers What are DML Triggers? AFTER Triggers vs. INSTEAD OF Triggers Inserted and Deleted Virtual Tables SET NOCOUNT ON Trigger Performance Considerations Lesson 2: Implementing DML Triggers AFTER INSERT Triggers Demo 2A - AFTER INSERT Triggers AFTER DELETE Triggers Demo 2B - AFTER DELETE Triggers AFTER UPDATE Triggers Demo 2C - AFTER UPDATE Triggers Lesson 3: Advanced Trigger Concepts INSTEAD OF Triggers Demo 3A - INSTEAD OF Triggers How Nested Triggers Work Considerations for Recursive Triggers UPDATE Function Trigger Firing Order Alternatives to Using Triggers Demo 3B - Replacing Triggers with Computed Columns Module 15 Review 40m Module 16 - Implementing Managed Code in SQL Server 2008 R2 Lesson 1: Introduction to SQL CLR Integration Options for Extending SQL Server Introduction to the.net Framework.NET Common Language Runtime Why use Managed Code in SQL Server? T-SQL vs. Managed Code Appropriate Database Object use in Managed Code Lesson 2: Importing and Configuring Assemblies What is an Assembly? Assembly Permission Sets Importing an Assembly Demo 2A - Importing and Configuring an Assembly Lesson 3: Implementing SQL CLR Integration Attribute Usage Scalar User-defined Functions Table-valued User-defined Functions Demo 3A - User-defined Functions Stored Procedures T-SQL Replacement 56m
Stored Procedures External Access Triggers Demo 3B - Stored Procedures and Triggers User-defined Aggregates User-defined Data Types Considerations for User-defined Data Types Demo 3C - Aggregates and User-defined Data Types Module 16 Review Module 17 - Storing XML Data in SQL Server 2008 R2 Lesson 1: Introduction to XML and XML Schemas Discussion: XML Usage in SQL Server Core XML Concepts Fragments vs. Documents XML Namespaces XML Schemas Appropriate Usage of XML Data Storage in SQL Server Demo 1A - Introduction to XML and XML Schemas Lesson 2: Storing XML Data and Schemas in SQL Server XML Data Type XML Schema Collections Untyped vs. Typed XML CONTENT vs. DOCUMENT Demo 2A - Typed vs. Untyped XML Lesson 3: Implementing XML Indexes What are XML Indexes? Types of XML Indexes Demo 3A - Implementing XML Indexes Module 17 Review 24m Module 18 - Querying XML Data in SQL Server 2008 R2 Lesson 1: Using the T-SQL FOR XML Statement Introducing the FOR XML clause Using RAW Mode Queries Using Auto Mode Queries Using Explicit Mode Queries Using Path Mode Queries Retrieving Nested XML Demo 1A - FOR XML Queries Lesson 2: Getting Started with XQuery What is XQuery? query() Method value() Method exist() Method modify() Method Demo 2A - XQuery Methods in a DDL Trigger Lesson 3: Shredding XML Overview of Shredding XML data Stored Procedures for Managing In-Memory Node Trees OPENXML 38m
Working with XML Namespaces nodes() Method Demo 3A - Shredding XML Module 18 Review Module 19 - Working with SQL Server 2008 R2 Spatial Data Lesson 1: Introduction to Spatial Data Target Applications Types of Spatial Data Planar vs. Geodetic OGC Object Hierarchy Spatial Reference Identifiers Demo 1A - Spatial Reference Systems Lesson 2: Working with SQL Server Spatial Data Types SQL Server Spatial Data System vs. User SQL CLR Types geometry Data Type geography Data Type Spatial Data Formats OGC Methods and Properties Microsoft Extensions Demo 2A - Spatial Data Types Lesson 3: Using Spatial Data in Applications Performance Issues in Spatial Queries Tessellation Process Spatial Indexes Implementing Spatial Indexes geometry Methods Supported by Spatial Indexes geography Methods Supported by Spatial Indexes Extending SQL Server Spatial Demo 3A - Spatial Data in Applications Module 19 Review 30m Module 20 - Working with Full-Text Indexes and Queries Lesson 1: Introduction to Full-Text Indexing Discussion: The Need for More Flexible User Interaction Why LIKE Isn't Enough Fuzziness in Queries Demo 1A - Using Full-Text Queries Lesson 2: Implementing Full-Text Indexes in SQL Server Discussion: Search-related Options Full-Text Search in SQL Server Core Components of Full-Text Search Language Support and Supported Word Breakers Implementing Full-Text Indexes Demo 2A - Implementing Full-Text Indexes Lesson 3: Working with Full-Text Queries CONTAINS Queries FREETEXT Queries Table Functions and Ranking Results 36m
Thesaurus Stopwords and Stoplists SQL Server Management of Full-Text Demo 3A - Working with Full-Text Queries Module 20 Review Course Closure Total Duration: 16hrs 11m