Tải bản đầy đủ (.pdf) (775 trang)

MCITP Exam 70-444 Optimizing and Maintaining A Database Administration Solution by Using Microsoft SQL Server 2005 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.89 MB, 775 trang )

PUBLISHED BY
Microsoft Press
A Division of Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399
Copyright © 2006 by Microsoft Corporation and Ian McLean
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by
any means without the written permission of the publisher.
ISBN-13: 978-0-7356-2254-8
ISBN-10: 0-7356-2254-X
Library of Congress Control Number 2006932077
Printed and bound in the United States of America.
1 2 3 4 5 6 7 8 9 QWT 0 9 8 7 6 5
Distributed in Canada by H.B. Fenn and Company Ltd.
A CIP catalogue record for this book is available from the British Library.
Microsoft Press books are available through booksellers and distributors worldwide. For further information
about international editions, contact your local Microsoft Corporation office or contact Microsoft Press Inter-
national directly at fax (425) 936-7329. Visit our Web site at www.microsoft.com/mspress. Send comments
to
Microsoft, Microsoft Press, Active Directory, ActiveX, BizTalk, Excel, Internet Explorer, JScript, MSDN,
Visual Basic, Visual C++, Visual C#, Visual J#, Visual SourceSafe, Visual Studio, Windows, Windows NT,
and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the United
States and/or other countries. Other product and company names mentioned herein may be the trademarks of
their respective owners.
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and
events depicted herein are fictitious. No association with any real company, organization, product, domain
name, e-mail address, logo, person, place, or event is intended or should be inferred.
This book expresses the author’s views and opinions. The information contained in this book is provided with-
out any express, statutory, or implied warranties. Neither the authors, Microsoft Corporation, nor its resellers,
or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly


by this book.
Acquisitions Editor: Ken Jones
Project Editor: Laura Sackerman
Technical Editors: Rozanne Murphy Whalen and Dan Whalen
Indexer: William Meyers
Copy Editor: Roger LeBlanc
Body Part No. X12-48798
For Oksana and Rooslan: I love you.
Orin Thomas
To my daughter-in-law, Harjit, and my son-in-law, James,
both of whom chose to become related to me of their own free will.
Ian McLean
A04B62254X.fm Page vi Sunday, August 28, 2005 4:34 PM
vii
Contents at a Glance
1 Troubleshooting Database and Server Performance . . . . . . . . . . . . . . . . . .1
2 Analyzing Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3 Failure Diagnosis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4 Disaster Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
5 Performance Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
6 Database Maintenance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
7 SQL Server Integration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
8 Design Data Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
9 Business Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
10 Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
11 Security Strategies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
12 Detecting and Responding to Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
ix

What do you think of this book?
We want to hear from you!
Microsoft is interested in hearing your feedback about this publication so we can
continually improve our books and learning resources for you. To participate in a brief
online survey, please visit: www.microsoft.com/learning/booksurvey/
Table of Contents
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxv
Hardware Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Software Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Using the CD and DVD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
How to Install the Practice Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
How to Use the Practice Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
How to Uinstall the Practice Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
Microsoft Certified Professional Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
Evaluation Edition Software Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
1
Troubleshooting Database and Server Performance . . . . . . . . . . . . . . . . . .1
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Lesson 1: Troubleshooting Physical Server Performance . . . . . . . . . . . . . . . . . . . . . . . . 3
Using System Monitor and Performance Logs and Alerts . . . . . . . . . . . . . . . . . . 3
Evaluating Memory Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Evaluating Disk Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Evaluating Processor Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Evaluating Network Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Evaluating User Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Solving Resource Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Generating Performance Counter Logs and Alerts . . . . . . . . . . . . . . . . . . . . . . . 18
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Lesson 2: Troubleshooting Connectivity to a SQL Server Instance . . . . . . . . . . . . . . . 28
Troubleshooting Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Analyzing Tempdb Database Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Monitoring Instance Memory Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Data Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Analyzing Statement Recompiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
x Table of Contents
Configuring Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
SQL CLR Memory Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Configuring CPU Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Monitoring Waits and Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Using SQL Server Profiler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Lesson 3: Troubleshooting Database Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Resolving Space Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Monitoring Auto-Grow and Auto-Shrink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Updating Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Evaluating Index Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Auditing and Analyzing Poorly Written Queries . . . . . . . . . . . . . . . . . . . . . . . . . 61
Monitoring Transaction Log Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Monitoring Database Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Investigating Locks and Deadlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Optimizing RAID Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Troubleshooting Database and Transaction Log Storage . . . . . . . . . . . . . . . . . . 70
Using the Database Engine Tuning Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Case Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Case Scenario: Resolving Physical Server and Database Bottlenecks . . . . . . . . 78
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Troubleshoot Physical Server Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Troubleshoot Instance Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Troubleshoot Database Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Take a Practice Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2 Analyzing Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Lesson 1: Identifying Poorly Performing Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Using Query Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Using SQL Server Profiler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Table of Contents xi
Using the Database Tuning Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Using SQL Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Using DMVs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Identifying a Badly Performing Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Lesson 2: Analyzing a Query Plan to Detect Inefficiencies in Query Logic . . . . . . . . 98
Detecting Excessive I/O Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Monitoring Table Scans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Monitoring CPU Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Obtaining Query Plan Statistics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Lesson 3: Maintaining and Optimizing Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Defragmenting an Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Reorganizing and Rebuilding an Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Adding an Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Specifying the Fill Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Using the PAD_INDEX Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Using Clustered and Nonclustered Indexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Using Covering Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Using Indexed Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Creating XML Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Creating Partitioned Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Performing Index Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Lesson 4: Enforcing Appropriate Stored Procedure Logging and Output . . . . . . . . 132
Handling Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Examining the Default Log Trace File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Lesson 5: Troubleshooting Concurrency Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Using the SQL Server Locks Performance Counters . . . . . . . . . . . . . . . . . . . . . 137
Evaluating the Transactions/sec Performance Counter . . . . . . . . . . . . . . . . . . . 142
Using Alerts to Trigger the Notification Process. . . . . . . . . . . . . . . . . . . . . . . . . 144
Using SQL Server Profiler to Troubleshoot Concurrency Issues . . . . . . . . . . . . 146
xii Table of Contents
Saving a Deadlock Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Case Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Case Scenario: Dealing with Compatibility Problems
and Fragmented Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Identify Poorly Performing Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Analyze a Query Plan to Detect Inefficiencies in Query Logic . . . . . . . . . . . . 153
Maintain and Optimize Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Enforce Appropriate Stored Procedure Logging and Output . . . . . . . . . . . . . 154
Troubleshoot Concurrency Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Take a Practice Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
3 Failure Diagnosis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Lesson 1: Diagnosing Database Failures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Log File Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Filtering Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Understanding Database Engine Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Diagnosing Common Problems Using Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Filtering a Log Using the Log File Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Lesson 2: Diagnosing Physical Server Failures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Diagnosing Volumes and Disks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Diagnosing RAM and Processor Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Diagnosing Other Hardware Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Using CHKDSK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Lesson 3: SQL Server Service Failures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
SQL Server 2005 Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Service Password Expiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Table of Contents xiii

SQL Browser Service and DAC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
The SQL Server Agent Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Configuring a Service to Automatically Restart . . . . . . . . . . . . . . . . . . . . . . . . . 186
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189
Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Case Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
Case Scenario 1: Diagnosing Database Configuration Errors . . . . . . . . . . . . . . 190
Case Scenario 2: Diagnosing Database Hardware Errors. . . . . . . . . . . . . . . . . . 191
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Diagnose Causes of Failures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Take a Practice Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
4 Disaster Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Lesson 1: Planning for Fault Tolerance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
SQL Server and RAID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Failover Clustering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Log Shipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Configure Log Shipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Lesson 2: Recovering from Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Restoring the System Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Recovery Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Files and Filegroups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Backup Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Snapshot Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

Use the Full Recovery Model and Back Up a Database. . . . . . . . . . . . . . . . . . . 218
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Lesson 3: Recovering from Database Disaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Restoration and Rolling Forward. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Restore Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
xiv Table of Contents
Safety Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Database Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Troubleshooting Orphaned Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Create and Revert to a Snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Lesson 4: Salvaging Data from a Damaged Database . . . . . . . . . . . . . . . . . . . . . . . . 237
Restoring Data from Bad Tapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Using DBCC CHECKDB to Repair Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Rebuilding Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Managing Suspect Pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Check a Database for Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Case Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Case Scenario 1: Ensuring Fault Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Case Scenario 2: Backup and Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Plan for Fault Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Salvage Good Data from a Damaged Database
by Using Restoration Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

Recover from a Database Disaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Recover from a Failure of SQL Server 2005. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Take a Practice Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
5 Performance Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Lesson 1: Defining and Implementing Monitoring Standards
for a Physical Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Establishing Performance Thresholds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Establishing Performance Baselines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Deciding What to Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Using Performance Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Defining Traces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Setting Alerts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Setting Event Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Table of Contents xv
Setting an Alert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Lesson 2: Choosing the Appropriate Information to Monitor . . . . . . . . . . . . . . . . . . 277
Using the sys.dm_exec_query_stats DMV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Using the SQL Server Log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Analyzing Waits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Tracing Resource Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Checking Service Availability and Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Viewing and Recycling the SQL Error Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298
Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

Case Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
Case Scenario 1: Automating, Monitoring, and Configuring Alerts . . . . . . . . 299
Case Scenario 2: Identifying Slow and Resource-Intensive Transactions . . . . 300
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Define and Implement Monitoring Standards for a Physical Server . . . . . . . . 301
Choose the Information to Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Take a Practice Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
6 Database Maintenance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Lesson 1: Creating and Implementing a Maintenance Strategy
for Database Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Capturing Data Definition Language (DDL) Operations
Using DDL Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Creating Database Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Job Dependency Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Applying Service Packs, Software Updates, and Security Updates . . . . . . . . . 310
Creating a Database Diagram for the AdventureWorks DW Database . . . . . 314
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Lesson 2: Designing a Database Maintenance Plan. . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Database Maintenance Plans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Database Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
xvi Table of Contents
Manual Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Create a Backup Device and Take a Full Backup . . . . . . . . . . . . . . . . . . . . . . . . 328
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Lesson 3: Managing Reporting Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
The Report Server Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Report Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

Creating a Basic Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Report Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Report Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Reporting Services Configuration Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Configuring Role-Based Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Moving a Report Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Generate a Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Lesson 4: Designing a Strategy to Manage Data Across Linked Servers . . . . . . . . . 351
Linked Server Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
How Linked Servers Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Setting Up Linked Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Configuring OLE DB Provider Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Configuring Linked Servers for Delegation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Linked Server Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Configuring Linked Server Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Case Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Case Scenario 1: Managing Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Case Scenario 2: Configuring Report Server Roles . . . . . . . . . . . . . . . . . . . . . . 364
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Take a Practice Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
7 SQL Server Integration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Table of Contents xvii

Lesson 1: Constructing SSIS Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Business Intelligence Development Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
SSIS Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Building a Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Executing Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Creating an SSIS Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Lesson 2: Securing SSIS Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Securing Sensitive Data Using Package Protection Levels . . . . . . . . . . . . . . . . 386
Database-Level Role Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Package and Configuration Storage Security . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Digitally Signing Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Securing an SSIS Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Lesson 3: Troubleshooting SSIS Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Package Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Incorporating Transactions into Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Package Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Data Viewers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Breakpoints Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Package Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Setting Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Lesson 4: Deploying SSIS Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Package Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Deployment Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Deployment of Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409

Scheduling Package Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Schedule Package Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .415
Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
xviii Table of Contents
Case Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Case Scenario 1: Creating and Managing SSIS Packages . . . . . . . . . . . . . . . . 416
Case Scenario 2: SSIS Package Administration. . . . . . . . . . . . . . . . . . . . . . . . . . 417
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Design and Manage SQL Server Integration Services (SSIS) Packages. . . . . . 418
Take a Practice Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
8 Design Data Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
Lesson 1: Reconciling Data Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Detecting Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Resolving Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Viewing Data Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Viewing Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Lesson 2: Making Implicit Constraints Explicit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Understanding Implicit and Explicit Constraints . . . . . . . . . . . . . . . . . . . . . . . . 428
Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Configuring a Check Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

Lesson 3: Assigning Data Types to Control Characteristics of Data Stored
in a Column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Transact-SQL Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Alias Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
User-Defined CLR Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Creating an Alias Data Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Case Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Case Scenario 1: Making Implicit Constraints Explicit. . . . . . . . . . . . . . . . . . . . 450
Case Scenario 2: Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Table of Contents xix
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Design Data Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Take a Practice Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
9 Business Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Lesson 1: Enforcing Data Quality According to Business Requirements. . . . . . . . . . 455
Analyzing Business and Regulatory Requirements
and Determining Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Establishing Business Requirements for Data Quality . . . . . . . . . . . . . . . . . . . . 457
Ensuring Applications Enforce Data Quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Using SQL Server Integration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Using Fuzzy Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Using Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Creating Queries to Inspect the Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Using CHECKSUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482

Cleaning Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Using the UNION Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Lesson 2: Optimizing a Database Change Control Strategy
to Meet Business Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Verifying that Database Change Control Procedures Are Being Followed. . . 494
Identifying All Database Objects Related to a Particular Deployment . . . . . 501
Using DDL Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .518
Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Case Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .519
Case Scenario 1: Checking and Correcting Invalid Database Entries . . . . . . . 519
Case Scenario 2: Managing Schema Changes . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Enforce Data Quality According to Business Requirements . . . . . . . . . . . . . . 521
Optimize a Database Change Control Strategy
to Meet Business Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Take a Practice Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
xx Table of Contents
10 Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Lesson 1: Designing a Strategy to Manage Replication . . . . . . . . . . . . . . . . . . . . . . . 525
Selecting a Replication Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Specifying a Replication Type, Topology, and Model . . . . . . . . . . . . . . . . . . . . 527
Designing and Configuring Replication Alerts. . . . . . . . . . . . . . . . . . . . . . . . . . 534
Monitoring Replication Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537

Verifying Replication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Resolving Replication Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
Configuring Agent Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
Tuning Replication Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Using Replication with Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Configuring and Verifying Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Case Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Case Scenario 1: Selecting Replication Type and Model . . . . . . . . . . . . . . . . . 580
Case Scenario 2: Tuning Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
Design a Strategy to Manage Replication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
Take a Practice Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
11 Security Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
Lesson 1: Maintaining a Server-Level Security Strategy . . . . . . . . . . . . . . . . . . . . . . . 585
Specifying and Auditing Windows Account Permissions . . . . . . . . . . . . . . . . . 585
Auditing SQL Server Service Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
Auditing Server Logins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
Assigning the Appropriate Minimum Level of Privileges . . . . . . . . . . . . . . . . 593
Applying the Principle of Least Privilege. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
Maintaining an Encryption Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
Applying Service Packs and Security Updates . . . . . . . . . . . . . . . . . . . . . . . . . . 600
Configuring the Surface Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Using the SQL Server Surface Area Configuration Tool . . . . . . . . . . . . . . . . . . 605
Table of Contents xxi

Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Lesson 2: Maintaining a User-Level Security Strategy . . . . . . . . . . . . . . . . . . . . . . . . . 612
Verifying the Existence and Enforcement of Account Policies . . . . . . . . . . . . . 612
Verifying SQL Server Login Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
Verifying Permissions on SQL Server Roles and Accounts . . . . . . . . . . . . . . . . 623
Using Object Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .642
Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Case Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .643
Case Scenario 1: Configuring Security on SQL Server 2005
Member Servers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Case Scenario 2: Adding Your Team Members’ User Accounts
to Database Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Maintain a Server-Level Security Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Maintain a User-Level Security Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Take a Practice Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
12 Detecting and Responding to Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Lesson 1: Auditing the Existing Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Analyzing Physical Server Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
SQL Server Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
Security Configuration And Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
Using the MBSA Tool to Audit Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
Configuring Security Using Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657

Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
Lesson 2: Protecting Against Threats and Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
Preparing for and Responding to SQL Server Injection Attacks. . . . . . . . . . . . 660
Responding to Virus and Worm Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
Responding to Denial of Service Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
Responding to a Denial of Service Attack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
Responding to Internal Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
xxii Table of Contents
Securing Database Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
Lesson Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Case Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Case Scenario 1: Physically Securing a Server Room. . . . . . . . . . . . . . . . . . . . . 673
Case Scenario 2: Responding to a Denial of Service Attack . . . . . . . . . . . . . . . 673
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
Performing a Security Audit of the Existing Security Infrastructure
Based on the Security Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
Prepare for and Respond to Threats and Attacks . . . . . . . . . . . . . . . . . . . . . . . 674
Take a Practice Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Configuring the Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
Installing and Configuring the Windows Server 2003 R2 180-Day Evaluation
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
Installing SQL Server 2005 Enterprise Edition 180-Day Evaluation. . . . . . . . . 677
Installing SQL Server 2005 Service Pack 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
Installing Sample Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
Glossary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681

Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
What do you think of this book?
We want to hear from you!
Microsoft is interested in hearing your feedback about this publication so we can
continually improve our books and learning resources for you. To participate in a brief
online survey, please visit: www.microsoft.com/learning/booksurvey/
xxiii
Acknowledgments
Producing a book is always a team effort, and the authors would like to thank our pro-
gram manager, Ken Jones, for commissioning us to write the book and for his assis-
tance throughout the project, and our content development manager, Karen Szall, for
guiding us through the early stages. Our main contact was our project editor, Laura
Sackerman, and we are most appreciative of her professionalism and patience in get-
ting this difficult project to the finish line.
We would also like to thank our technical editors, Rozanne Murphy Whalen and Dan
Whalen, our copy editor, Roger LeBlanc, and our proofreader, Victoria Thulman, all of
whom provided valuable and constructive input—particularly to the sections that we
wrote at five in the morning.
The work done behind the scenes is always important, and we would like to pay trib-
ute to the professionalism of our indexer, William Meyers, our proofreading coordi-
nator, Sandi Resnick, our layout coordinators, Carl Diltz and Elizabeth Hansford, and
our indexing coordinators, Patty Masserman and Shawn Peck.
Few creatures are more antisocial than an author in mid-book. As always, we are truly
grateful to our wives, Oksana Thomas and Anne McLean, for their support and infi-
nite patience. Finally we would like to thank the unknown genius who figured out
what the coffee bean is for. Without caffeine this book would not have been written.

xxv
Introduction

This training kit is designed for experienced database administrators (DBAs) who
plan to take Microsoft Certified Information Technology Professional (MCITP) Exam
70-444, as well as for database professionals whose tasks might include defining high-
availability solutions, automating administrative procedures, defining security solu-
tions, designing and executing deployments, and monitoring and troubleshooting
database servers. We assume that before you begin using this kit you will have a good
working knowledge of Microsoft Windows, network technologies, relational data-
bases and their design, Transact-SQL, and the Microsoft SQL Server 2005 client tools.
By using this training kit, you’ll learn how to do the following:
■ Optimize the performance of database servers and databases.
■ Optimize and implement a data recovery plan for a database.
■ Design a strategy to monitor and maintain a database solution.
■ Design a database data management strategy.
■ Design a strategy to manage and maintain database security.
Hardware Requirements
We recommend that you use an isolated network that is not part of your production
network to do the practice exercises in this book. You need a two-station network that
you can implement either by using two computers connected by a crossover network
cable or by using a single computer running virtual machine software. Your computer
or computers should meet the following hardware specification:
■ Personal computer with a 600-MHz Pentium III–compatible or faster processor
(Pentium IV or equivalent if you plan to use virtual machine software)
■ 512 MB of RAM (1.5 GB if you plan to use virtual machine software)
■ 10 GB of available hard disk space (20 GB if you plan to use virtual machine
software)
■ DVD-ROM drive
■ Super VGA (1024 × 768) or higher resolution video adapter and monitor
■ Keyboard and Microsoft mouse, or compatible pointing device
xxvi Introduction
Software Requirements

The following software is required to complete the practice exercises:
■ Microsoft Windows 2003 Server with Service Pack 2 (SP2) or later
■ Microsoft SQL Server 2005 Enterprise Edition, SP1 or later (A 180-day evaluation
edition of Microsoft SQL Server 2005 Enterprise Edition is included on the DVD
that comes with this book.)
■ The latest version of the AdventureWorks database (which you can find at
/>MORE INFO Software requirements
For more details about these software requirements, please see the Appendix.
Using the CD and DVD
A companion CD and an evaluation software DVD are included with this training kit.
The companion CD contains the following:
■ Practice tests You can reinforce your understanding of how to optimize and
maintain a database administration solution by using electronic practice tests
you customize to meet your needs from the pool of Lesson Review questions in
this book. Or you can practice for the 70-444 certification exam by using tests
created from a pool of 300 realistic exam questions, which give you many
different practice exams to ensure that you’re prepared.
■ An eBook An electronic version (eBook) of this book is included for times when
you don’t want to carry the printed book with you. The eBook is in Portable
Document Format (PDF), and you can view it by using Adobe Acrobat or Adobe
Reader.
The evaluation software DVD contains a 180-day evaluation edition of SQL Server
2005 Enterprise Edition, in case you want to use it with this book.
How to Install the Practice Tests
To install the practice test software from the companion CD to your hard disk, do the
following:
1. Insert the companion CD into your CD drive, and accept the license agreement.
A CD menu appears.
Using the CD and DVD xxvii
NOTE If the CD menu doesn’t appear

If the CD menu or the license agreement doesn’t appear, AutoRun might be disabled on your
computer. Refer to the Readme.txt file on the CD-ROM for alternate installation instructions.
2. Click the Practice Tests item, and follow the instructions on the screen.
How to Use the Practice Tests
To start the practice test software, follow these steps:
1. Click Start/All Programs/Microsoft Press Training Kit Exam Prep. A window
appears that shows all the Microsoft Press training kit exam prep suites installed
on your computer.
2. Double-click the lesson review or practice test you want to use.
NOTE Lesson reviews vs. practice tests
Select the (70-444) Microsoft SQL Server 2005—Optimizing and Maintaining a Database Administration
Solution lesson review to use the questions from the “Lesson Review” sections of this book. Select
the (70-444) Microsoft SQL Server 2005—Optimizing and Maintaining a Database Administration
Solution practice test to use a pool of 300 questions similar to those in the 70-444 certification exam.
Lesson Review Options
When you start a lesson review, the Custom Mode dialog box appears so that you can
configure your test. You can click OK to accept the defaults, or you can customize the
number of questions you want, how the practice test software works, which exam
objectives you want the questions to relate to, and whether you want your lesson
review to be timed. If you’re retaking a test, you can select whether you want to see all
the questions again or only questions you missed or didn’t answer.
After you click OK, your lesson review starts.
■ To take the test, answer the questions and use the Next, Previous, and Go To buttons
to move from question to question.
■ After you answer an individual question, if you want to see which answers are
correct—along with an explanation of each correct answer—click Explanation.
■ If you’d rather wait until the end of the test to see how you did, answer all the
questions and then click Score Test. You’ll see a summary of the exam objectives
you chose and the percentage of questions you got right overall and per objective.
You can print a copy of your test, review your answers, or retake the test.

×