You are previewing Training Kit (Exam 70-461): Querying Microsoft® SQL Server® 2012.
O'Reilly logo
Training Kit (Exam 70-461): Querying Microsoft® SQL Server® 2012

Book Description

Ace your preparation for Microsoft Certification Exam 70-461 with this 2-in-1 Training Kit from Microsoft Press. Work at your own pace through a series of lessons and practical exercises, and then assess your skills with practice tests on CD–featuring multiple, customizable testing options.

Maximize your performance on the exam by learning how to:

  • Create database objects

  • Work with data

  • Modify data

  • Troubleshoot and optimize queries

  • For customers who purchase an ebook version of this title, instructions for downloading the CD files can be found in the ebook.

    Table of Contents

    1. Training Kit (Exam 70-461): Querying Microsoft® SQL Server® 2012
    2. A Note Regarding Supplemental Files
    3. Introduction
      1. System Requirements
        1. SQL Server Software and Data Requirements
        2. Hardware and Operating System Requirements
      2. Using the Companion CD
        1. How to Install the Practice Tests
        2. How to Use the Practice Tests
        3. How to Uninstall the Practice Tests
      3. Acknowledgments
      4. Errata & Book Support
      5. We Want to Hear from You
      6. Stay in Touch
      7. Preparing for the Exam
    4. 1. Foundations of Querying
      1. Before You Begin
      2. Lesson 1: Understanding the Foundations of T-SQL
        1. Evolution of T-SQL
        2. Using T-SQL in a Relational Way
        3. Using Correct Terminology
          1. Practice Using T-SQL in a Relational Way
            1. Practice Using T-SQL in a Relational Way
        4. Lesson Summary
        5. Lesson Review
      3. Lesson 2: Understanding Logical Query Processing
        1. T-SQL As a Declarative English-Like Language
        2. Logical Query Processing Phases
          1. 1. Evaluate the FROM Clause
          2. 2. Filter Rows Based on the WHERE Clause
          3. 3. Group Rows Based on the GROUP BY Clause
          4. 4. Filter Rows Based on the HAVING Clause
          5. 5. Process the SELECT Clause
          6. 6. Handle Presentation Ordering
            1. Practice Logical Query Processing
        3. Lesson Summary
        4. Lesson Review
      4. Case Scenarios
        1. Case Scenario 1: Importance of Theory
        2. Case Scenario 2: Interviewing for a Code Reviewer Position
      5. Suggested Practices
        1. Visit T-SQL Public Newsgroups and Review Code
        2. Describe Logical Query Processing
      6. Answers
        1. Lesson 1
        2. Lesson 2
        3. Case Scenario 1
        4. Case Scenario 2
    5. 2. Getting Started with the SELECT Statement
      1. Before You Begin
      2. Lesson 1: Using the FROM and SELECT Clauses
        1. The FROM Clause
        2. The SELECT Clause
        3. Delimiting Identifiers
          1. Practice Using the FROM and SELECT Clauses
            1. Practice Using the FROM and SELECT Clauses
        4. Lesson Summary
        5. Lesson Review
      3. Lesson 2: Working with Data Types and Built-in Functions
        1. Choosing the Appropriate Data Type
        2. Choosing a Data Type for Keys
        3. Date and Time Functions
          1. Current Date and Time
          2. Date and Time Parts
          3. Add and Diff
          4. Offset
        4. Character Functions
          1. Concatenation
          2. Substring Extraction and Position
          3. String Length
          4. String Alteration
          5. String Formatting
        5. CASE Expression and Related Functions
          1. Practice Working with Data Types and Built-in Functions
            1. Practice Working with Data Types and Built-in Functions
        6. Lesson Summary
        7. Lesson Review
      4. Case Scenarios
        1. Case Scenario 1: Reviewing the Use of Types
        2. Case Scenario 2: Reviewing the Use of Functions
      5. Suggested Practices
        1. Analyze the Data Types in the Sample Database
        2. Analyze Code Samples in Books Online for SQL Server 2012
      6. Answers
        1. Lesson 1
        2. Lesson 2
        3. Case Scenario 1
        4. Case Scenario 2
    6. 3. Filtering and Sorting Data
      1. Before You Begin
      2. Lesson 1: Filtering Data with Predicates
        1. Predicates, Three-Valued Logic, and Search Arguments
        2. Combining Predicates
        3. Filtering Character Data
        4. Filtering Date and Time Data
          1. Practice Filtering Data with Predicates
            1. Practice Filtering Data with Predicates
        5. Lesson Summary
        6. Lesson Review
      3. Lesson 2: Sorting Data
        1. Understanding When Order Is Guaranteed
        2. Using the ORDER BY Clause to Sort Data
          1. Practice Sorting Data
            1. Practice Sorting Data
        3. Lesson Summary
        4. Lesson Review
      4. Lesson 3: Filtering Data with TOP and OFFSET-FETCH
        1. Filtering Data with TOP
        2. Filtering Data with OFFSET-FETCH
          1. Practice Filtering Data with TOP and OFFSET-FETCH
            1. Practice Filtering Data with TOP and OFFSET-FETCH
        3. Lesson Summary
        4. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Filtering and Sorting Performance Recommendations
        2. Case Scenario 2: Tutoring a Junior Developer
      6. Suggested Practices
        1. Identify Logical Query Processing Phases and Compare Filters
        2. Understand Determinism
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    7. 4. Combining Sets
      1. Before You Begin
      2. Lesson 1: Using Joins
        1. Cross Joins
        2. Inner Joins
        3. Outer Joins
        4. Multi-Join Queries
          1. Practice Using Joins
        5. Lesson Summary
        6. Lesson Review
      3. Lesson 2: Using Subqueries, Table Expressions, and the APPLY Operator
        1. Subqueries
          1. Self-Contained Subqueries
          2. Correlated Subqueries
        2. Table Expressions
          1. Derived Tables
          2. CTEs
          3. Views and Inline Table-Valued Functions
        3. APPLY
          1. CROSS APPLY
          2. OUTER APPLY
            1. Practice Using Subqueries, Table Expressions, and the APPLY Operator
        4. Lesson Summary
        5. Lesson Review
      4. Lesson 3: Using Set Operators
        1. UNION and UNION ALL
        2. INTERSECT
        3. EXCEPT
          1. Practice Using Set Operators
        4. Lesson Summary
        5. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Code Review
        2. Case Scenario 2: Explaining Set Operators
      6. Suggested Practices
        1. Combine Sets
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    8. 5. Grouping and Windowing
      1. Before You Begin
      2. Lesson 1: Writing Grouped Queries
        1. Working with a Single Grouping Set
        2. Working with Multiple Grouping Sets
          1. Practice Writing Grouped Queries
            1. Practice Writing Grouped Queries
        3. Lesson Summary
        4. Lesson Review
      3. Lesson 2: Pivoting and Unpivoting Data
        1. Pivoting Data
        2. Unpivoting Data
          1. Practice Pivoting Data
            1. Practice Pivoting Data
        3. Lesson Summary
        4. Lesson Review
      4. Lesson 3: Using Window Functions
        1. Window Aggregate Functions
        2. Window Ranking Functions
        3. Window Offset Functions
          1. Practice Using Window Functions
            1. Practice Using Window Functions
        4. Lesson Summary
        5. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Improving Data Analysis Operations
        2. Case Scenario 2: Interviewing for a Developer Position
      6. Suggested Practices
        1. Logical Query Processing
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    9. 6. Querying Full-Text Data
      1. Before You Begin
      2. Lesson 1: Creating Full-Text Catalogs and Indexes
        1. Full-Text Search Components
        2. Creating and Managing Full-Text Catalogs and Indexes
          1. Practice Creating a Full-Text Index
            1. Practice Creating a Full-Text Index
        3. Lesson Summary
        4. Lesson Review
      3. Lesson 2: Using the CONTAINS and FREETEXT Predicates
        1. The CONTAINS Predicate
        2. The FREETEXT Predicate
          1. Practice Using the CONTAINS and FREETEXT Predicates
            1. Practice Using the CONTAINS and FREETEXT Predicates
        3. Lesson Summary
        4. Lesson Review
      4. Lesson 3: Using the Full-Text and Semantic Search Table-Valued Functions
        1. Using the Full-Text Search Functions
        2. Using the Semantic Search Functions
          1. Practice Using the Full-Text and Semantic Search Functions
            1. Practice Using the Full-Text and Semantic Search Functions
        3. Lesson Summary
        4. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Enhancing the Searches
        2. Case Scenario 2: Using the Semantic Search
      6. Suggested Practices
        1. Check the FTS Dynamic Management Views and Backup and Restore of a Full-Text Catalog and Indexes
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    10. 7. Querying and Managing XML Data
      1. Before You Begin
      2. Lesson 1: Returning Results As XML with FOR XML
        1. Introduction to XML
        2. Producing XML from Relational Data
          1. FOR XML RAW
          2. FOR XML AUTO
          3. FOR XML PATH
        3. Shredding XML to Tables
          1. Practice Using the FOR XML Clause
            1. Practice Using the FOR XML Clause
        4. Lesson Summary
        5. Lesson Review
      3. Lesson 2: Querying XML Data with XQuery
        1. XQuery Basics
          1. XQuery Data Types
          2. XQuery Functions
        2. Navigation
          1. Predicates
        3. FLWOR Expressions
          1. Practice Using XQuery/XPath Navigation
            1. Practice Using XQuery/XPath Navigation
        4. Lesson Summary
        5. Lesson Review
      4. Lesson 3: Using the XML Data Type
        1. When to Use the XML Data Type
        2. XML Data Type Methods
        3. Using the XML Data Type for Dynamic Schema
          1. XML Indexes
            1. Practice Using XML Data Type Methods
        4. Lesson Summary
        5. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Reports from XML Data
        2. Case Scenario 2: Dynamic Schema
      6. Suggested Practices
        1. Query XML Data
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    11. 8. Creating Tables and Enforcing Data Integrity
      1. Before You Begin
      2. Lesson 1: Creating and Altering Tables
        1. Introduction
        2. Creating a Table
          1. Specifying a Database Schema
          2. Naming Tables and Columns
          3. Choosing Column Data Types
          4. NULL and Default Values
          5. The Identity Property and Sequence Numbers
          6. Computed Columns
          7. Table Compression
        3. Altering a Table
        4. Choosing Table Indexes
          1. Practice Creating and Altering Tables
            1. Practice Creating and Altering Tables
        5. Lesson Summary
        6. Lesson Review
      3. Lesson 2: Enforcing Data Integrity
        1. Using Constraints
        2. Primary Key Constraints
        3. Unique Constraints
        4. Foreign Key Constraints
        5. Check Constraints
        6. Default Constraints
          1. Practice Enforcing Data Integrity
            1. Practice Enforcing Data Integrity
        7. Lesson Summary
        8. Lesson Review
      4. Case Scenarios
        1. Case Scenario 1: Working with Table Constraints
        2. Case Scenario 2: Working with Unique and Default Constraints
      5. Suggested Practices
        1. Create Tables and Enforce Data Integrity
      6. Answers
        1. Lesson 1
        2. Lesson 2
        3. Case Scenario 1
        4. Case Scenario 2
    12. 9. Designing and Creating Views, Inline Functions, and Synonyms
      1. Before You Begin
      2. Lesson 1: Designing and Implementing Views and Inline Functions
        1. Introduction
        2. Views
          1. Database Views Syntax
          2. View Options
          3. The SELECT and UNION Statements in a View
          4. WITH CHECK OPTION
          5. View Names
          6. Restrictions on Views
          7. Indexed Views
          8. Querying from Views
          9. Altering a View
          10. Dropping a View
          11. Modifying Data Through a View
          12. Partitioned Views
          13. Views and Metadata
        3. Inline Functions
          1. Inline Function Options
            1. Practice Working with Views and Inline Functions
        4. Lesson Summary
        5. Lesson Review
      3. Lesson 2: Using Synonyms
        1. Creating a Synonym
          1. Dropping a Synonym
          2. Abstraction Layer
          3. Synonyms and References to Nonexisting Objects
          4. Synonym Permissions
        2. Comparing Synonyms with Other Database Objects
          1. Practice Using Synonyms
            1. Practice Using Synonyms
        3. Lesson Summary
        4. Lesson Review
      4. Case Scenarios
        1. Case Scenario 1: Comparing Views, Inline Functions, and Synonyms
        2. Case Scenario 2: Converting Synonyms to Other Objects
      5. Suggested Practices
        1. Design and Create Views, Inline Functions, and Synonyms
      6. Answers
        1. Lesson 1
        2. Lesson 2
        3. Case Scenario 1
        4. Case Scenario 2
    13. 10. Inserting, Updating, and Deleting Data
      1. Before You Begin
      2. Lesson 1: Inserting Data
        1. Sample Data
        2. INSERT VALUES
        3. INSERT SELECT
        4. INSERT EXEC
        5. SELECT INTO
          1. Practice Inserting Data
            1. Practice Inserting Data
        6. Lesson Summary
        7. Lesson Review
      3. Lesson 2: Updating Data
        1. Sample Data
        2. UPDATE Statement
        3. UPDATE Based on Join
        4. Nondeterministic UPDATE
        5. UPDATE and Table Expressions
        6. UPDATE Based on a Variable
        7. UPDATE All-at-Once
          1. Practice Updating Data
            1. Practice Updating Data
        8. Lesson Summary
        9. Lesson Review
      4. Lesson 3: Deleting Data
        1. Sample Data
        2. DELETE Statement
        3. TRUNCATE Statement
        4. DELETE Based on a Join
        5. DELETE Using Table Expressions
          1. Practice Deleting and Truncating Data
            1. Practice Deleting and Truncating Data
        6. Lesson Summary
        7. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Using Modifications That Support Optimized Logging
        2. Case Scenario 2: Improving a Process That Updates Data
      6. Suggested Practices
        1. DELETE vs. TRUNCATE
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    14. 11. Other Data Modification Aspects
      1. Before You Begin
      2. Lesson 1: Using the Sequence Object and IDENTITY Column Property
        1. Using the IDENTITY Column Property
        2. Using the Sequence Object
          1. Practice Using the Sequence Object
            1. Practice Using the Sequence Object
        3. Lesson Summary
        4. Lesson Review
      3. Lesson 2: Merging Data
        1. Using the MERGE Statement
          1. Practice Using the MERGE Statement
            1. Practice Using the MERGE Statement
        2. Lesson Summary
        3. Lesson Review
      4. Lesson 3: Using the OUTPUT Option
        1. Working with the OUTPUT Clause
        2. INSERT with OUTPUT
        3. DELETE with OUTPUT
        4. UPDATE with OUTPUT
        5. MERGE with OUTPUT
        6. Composable DML
          1. Practice Using the OUTPUT Clause
            1. Practice Using the OUTPUT Clause
        7. Lesson Summary
        8. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Providing an Improved Solution for Generating Keys
        2. Case Scenario 2: Improving Modifications
      6. Suggested Practices
        1. Compare Old and New Features
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    15. 12. Implementing Transactions, Error Handling, and Dynamic SQL
      1. Before You Begin
      2. Lesson 1: Managing Transactions and Concurrency
        1. Understanding Transactions
        2. ACID Properties of Transactions
        3. Types of Transactions
          1. Transaction Commands
          2. Transaction Levels and States
          3. Transaction Modes
            1. Autocommit Mode
              1. Autocommit Mode
              2. Implicit Transaction Mode
              3. Explicit Transaction Mode
          4. Nested Transactions
          5. Marking a Transaction
          6. Additional Transaction Options
        4. Basic Locking
          1. Lock Compatibility
          2. Blocking
          3. Deadlocking
        5. Transaction Isolation Levels
          1. Practice Implementing Transactions
            1. Practice Implementing Transactions
        6. Lesson Summary
        7. Lesson Review
      3. Lesson 2: Implementing Error Handling
        1. Detecting and Raising Errors
          1. Analyzing Error Messages
          2. Raiserror
          3. THROW
          4. TRY_CONVERT and TRY_PARSE
        2. Handling Errors After Detection
          1. Unstructured Error Handling Using @@ERROR
          2. Using XACT_ABORT with Transactions
          3. Structured Error Handling Using TRY/CATCH
          4. THROW vs. RAISERROR in TRY/CATCH
          5. Using XACT_ABORT with TRY/CATCH
            1. Practice: Working with Error Handling
        3. Lesson Summary
        4. Lesson Review
      4. Lesson 3: Using Dynamic SQL
        1. Dynamic SQL Overview
          1. Uses for Dynamic SQL
          2. Generating T-SQL Strings
          3. The EXECUTE Command
        2. SQL Injection
        3. Using sp_executesql
          1. Practice Writing and Testing Dynamic SQL
            1. Practice Writing and Testing Dynamic SQL
        4. Lesson Summary
        5. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Implementing Error Handling
        2. Case Scenario 2: Implementing Transactions
      6. Suggested Practices
        1. Implement Error Handling
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    16. 13. Designing and Implementing T-SQL Routines
      1. Before You Begin
      2. Lesson 1: Designing and Implementing Stored Procedures
        1. Understanding Stored Procedures
          1. Testing for the Existence of a Stored Procedure
          2. Stored Procedure Parameters
          3. BEGIN/END
          4. SET NOCOUNT ON
          5. RETURN and Return Codes
        2. Executing Stored Procedures
          1. Input Parameters
          2. Output Parameters
        3. Branching Logic
          1. IF/ELSE
          2. WHILE
          3. WAITFOR
          4. GOTO
        4. Developing Stored Procedures
          1. Stored Procedure Results
          2. Calling Other Stored Procedures
          3. Stored Procedures and Error Handling
          4. Dynamic SQL in Stored Procedures
            1. Practice Implementing Stored Procedures
        5. Lesson Summary
        6. Lesson Review
      3. Lesson 2: Implementing Triggers
        1. DML Triggers
        2. AFTER Triggers
          1. Nested AFTER Triggers
        3. INSTEAD OF Triggers
        4. DML Trigger Functions
          1. Practice Writing DML Triggers
            1. Practice Writing DML Triggers
        5. Lesson Summary
        6. Lesson Review
      4. Lesson 3: Implementing User-Defined Functions
        1. Understanding User-Defined Functions
        2. Scalar UDFs
        3. Table-Valued UDFs
          1. An Inline Table-Valued UDF
          2. Multistatement Table-Valued UDF
        4. Limitations on UDFs
        5. UDF Options
        6. UDF Performance Considerations
          1. Practice Writing User-Defined Functions
            1. Practice Writing User-Defined Functions
        7. Lesson Summary
        8. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Implementing Stored Procedures and UDFs
        2. Case Scenario 2: Implementing Triggers
      6. Suggested Practices
        1. Use Stored Procedures, Triggers, and UDFs
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    17. 14. Using Tools to Analyze Query Performance
      1. Before You Begin
      2. Lesson 1: Getting Started with Query Optimization
        1. Query Optimization Problems and the Query Optimizer
        2. SQL Server Extended Events, SQL Trace, and SQL Server Profiler
          1. Practice Using Extended Events
            1. Practice Using Extended Events
        3. Lesson Summary
        4. Lesson Review
      3. Lesson 2: Using SET Session Options and Analyzing Query Plans
        1. SET Session Options
        2. Execution Plans
          1. Practice Using SET Session Options and Execution Plans
            1. Practice Using SET Session Options and Execution Plans
        3. Lesson Summary
        4. Lesson Review
      4. Lesson 3: Using Dynamic Management Objects
        1. Introduction to Dynamic Management Objects
        2. The Most Important DMOs for Query Tuning
          1. Practice Using Index-Related DMOs
            1. Practice Using Index-Related DMOs
        3. Lesson Summary
        4. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Analysis of Queries
        2. Case Scenario 2: Constant Monitoring
      6. Suggested Practices
        1. Learn More About Extended Events, Execution Plans, and Dynamic Management Objects
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    18. 15. Implementing Indexes and Statistics
      1. Before You Begin
      2. Lesson 1: Implementing Indexes
        1. Heaps and Balanced Trees
          1. Heaps
          2. Clustered Indexes
        2. Implementing Nonclustered Indexes
        3. Implementing Indexed Views
          1. Practice Analyzing Nonclustered Indexes
            1. Practice Analyzing Nonclustered Indexes
        4. Lesson Summary
        5. Lesson Review
      3. Lesson 2: Using Search Arguments
        1. Supporting Queries with Indexes
        2. Search Arguments
          1. Practice Using the OR and AND Logical Operators
            1. Practice Using the OR and AND Logical Operators
        3. Lesson Summary
        4. Lesson Review
      4. Lesson 3: Understanding Statistics
        1. Auto-Created Statistics
        2. Manually Maintaining Statistics
          1. Practice Manually Maintaining Statistics
            1. Practice Manually Maintaining Statistics
        3. Lesson Summary
        4. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Table Scans
        2. Case Scenario 2: Slow Updates
      6. Suggested Practices
        1. Learn More About Indexes and How Statistics Influence Query Execution
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    19. 16. Understanding Cursors, Sets, and Temporary Tables
      1. Before You Begin
      2. Lesson 1: Evaluating the Use of Cursor/Iterative Solutions vs. Set-Based Solutions
        1. The Meaning of “Set-Based”
        2. Iterations for Operations That Must Be Done Per Row
        3. Cursor vs. Set-Based Solutions for Data Manipulation Tasks
          1. Practice Evaluating Cursor-Based vs. Set-Based Solutions
            1. Practice Evaluating Cursor-Based vs. Set-Based Solutions
        4. Lesson Summary
        5. Lesson Review
      3. Lesson 2: Using Temporary Tables vs. Table Variables
        1. Scope
        2. DDL and Indexes
        3. Physical Representation in tempdb
        4. Transactions
        5. Statistics
          1. Practice Choosing an Optimal Temporary Object
            1. Practice Choosing an Optimal Temporary Object
        6. Lesson Summary
        7. Lesson Review
      4. Case Scenarios
        1. Case Scenario 1: Performance Improvement Recommendations for Cursors and Temporary Objects
        2. Case Scenario 2: Identifying Inaccuracies in Answers
      5. Suggested Practices
        1. Identify Differences
      6. Answers
        1. Lesson 1
        2. Lesson 2
        3. Case Scenario 1
        4. Case Scenario 2
    20. 17. Understanding Further Optimization Aspects
      1. Before You Begin
      2. Lesson 1: Understanding Plan Iterators
        1. Access Methods
        2. Join Algorithms
        3. Other Plan Iterators
          1. Practice Determining Execution Plan Iterators
            1. Practice Determining Execution Plan Iterators
        4. Lesson Summary
        5. Lesson Review
      3. Lesson 2: Using Parameterized Queries and Batch Operations
        1. Parameterized Queries
        2. Batch Processing
          1. Practice Working with Query Parameterization and Stored Procedures
            1. Practice Working with Query Parameterization and Stored Procedures
        3. Lesson Summary
        4. Lesson Review
      4. Lesson 3: Using Optimizer Hints and Plan Guides
        1. Optimizer Hints
        2. Plan Guides
          1. Practice Using Optimizer Hints
            1. Practice Using Optimizer Hints
        3. Lesson Summary
        4. Lesson Review
      5. Case Scenarios
        1. Case Scenario 1: Query Optimization
        2. Case Scenario 2: Table Hint
      6. Suggested Practices
        1. Analyze Execution Plans and Force Plans
      7. Answers
        1. Lesson 1
        2. Lesson 2
        3. Lesson 3
        4. Case Scenario 1
        5. Case Scenario 2
    21. Index
    22. About the Authors
    23. Copyright