Introduction |
|
xxi | |
Assessment Test |
|
xxviii | |
|
Installing Microsoft SQL Server 2005 |
|
|
1 | (30) |
|
Meeting the Prerequisites |
|
|
2 | (3) |
|
|
5 | (3) |
|
Choosing Default Instances or Named Instances |
|
|
5 | (1) |
|
Choosing Service Accounts |
|
|
6 | (1) |
|
Selecting an Authentication Mode |
|
|
6 | (1) |
|
Choosing a Collation Setting |
|
|
7 | (1) |
|
Upgrading from a Previous Version |
|
|
8 | (2) |
|
Installing SQL Server 2005 |
|
|
10 | (9) |
|
Installing a Second Instance |
|
|
19 | (3) |
|
Troubleshooting the Installation |
|
|
22 | (1) |
|
|
23 | (1) |
|
|
23 | (1) |
|
|
24 | (4) |
|
Answers to Review Questions |
|
|
28 | (3) |
|
Creating and Configuring Databases |
|
|
31 | (30) |
|
|
32 | (2) |
|
Introducing Database Files |
|
|
32 | (1) |
|
|
33 | (1) |
|
Deciding on Database File Placement |
|
|
34 | (2) |
|
|
35 | (1) |
|
|
35 | (1) |
|
|
35 | (1) |
|
|
35 | (1) |
|
Creating Data Storage Structures |
|
|
36 | (2) |
|
|
36 | (1) |
|
|
37 | (1) |
|
Estimating Storage Requirements |
|
|
38 | (4) |
|
Estimating Table Storage Requirements |
|
|
38 | (3) |
|
Estimating Index Storage Requirements |
|
|
41 | (1) |
|
Creating and Configuring Databases |
|
|
42 | (8) |
|
|
42 | (2) |
|
Gathering Information about Your Database |
|
|
44 | (2) |
|
|
46 | (4) |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
52 | (7) |
|
Answers to Review Questions |
|
|
59 | (2) |
|
Working with Tables and Views |
|
|
61 | (46) |
|
|
62 | (5) |
|
Introducing Built-in Datatypes |
|
|
63 | (3) |
|
Introducing Computed Columns |
|
|
66 | (1) |
|
|
67 | (5) |
|
|
72 | (10) |
|
|
73 | (7) |
|
|
80 | (2) |
|
|
82 | (2) |
|
Modifying Data through a View |
|
|
84 | (4) |
|
Working with Indexed Views |
|
|
88 | (5) |
|
|
93 | (1) |
|
|
94 | (2) |
|
|
96 | (9) |
|
Answers to Review Questions |
|
|
105 | (2) |
|
Performing Indexing and Full-Text Searching |
|
|
107 | (34) |
|
Understanding Index Architecture |
|
|
108 | (14) |
|
|
109 | (2) |
|
Understanding Clustered Indexes |
|
|
111 | (5) |
|
Understanding Nonclustered Indexes |
|
|
116 | (6) |
|
|
122 | (1) |
|
|
123 | (3) |
|
Using Full-Text Searching |
|
|
126 | (7) |
|
|
133 | (1) |
|
|
133 | (1) |
|
|
134 | (5) |
|
Answers to Review Questions |
|
|
139 | (2) |
|
Introducing More Database Objects |
|
|
141 | (48) |
|
Introducing Stored Procedures |
|
|
142 | (8) |
|
Understanding the Types of Stored Procedures |
|
|
142 | (3) |
|
Creating Stored Procedures |
|
|
145 | (4) |
|
Recompiling Stored Procedures |
|
|
149 | (1) |
|
|
150 | (16) |
|
Understanding the Types of Triggers |
|
|
150 | (1) |
|
Understanding DML Triggers |
|
|
151 | (3) |
|
Understanding DDL Triggers |
|
|
154 | (4) |
|
Understanding Trigger Recursion and Nesting |
|
|
158 | (1) |
|
Understanding Disabling Triggers |
|
|
159 | (1) |
|
Understanding Event Notifications |
|
|
159 | (7) |
|
|
166 | (6) |
|
Understanding the Types of Functions |
|
|
166 | (1) |
|
|
166 | (1) |
|
Introducing Table-Valued Functions |
|
|
167 | (1) |
|
Introducing Built-in Functions |
|
|
167 | (2) |
|
Introducing CLR Functions |
|
|
169 | (2) |
|
Introducing Deterministic and Nondeterministic Functions |
|
|
171 | (1) |
|
Introducing User-Defined Types |
|
|
172 | (3) |
|
Creating T-SQL User-Defined Types |
|
|
172 | (1) |
|
Creating CLR User-Defined Types |
|
|
173 | (1) |
|
Getting More CLR Functionality |
|
|
174 | (1) |
|
|
175 | (1) |
|
|
175 | (1) |
|
|
176 | (9) |
|
Answers to Review Questions |
|
|
185 | (4) |
|
Implementing Security in SQL Server 2005 |
|
|
189 | (52) |
|
Understanding Security Modes |
|
|
190 | (3) |
|
Using Windows Authentication Mode |
|
|
190 | (1) |
|
|
191 | (1) |
|
Setting the Authentication Mode |
|
|
191 | (2) |
|
Understanding SQL Server Logins |
|
|
193 | (6) |
|
|
193 | (3) |
|
|
196 | (3) |
|
Understanding the Items Common to All Logins |
|
|
199 | (1) |
|
Understanding Fixed Server Roles |
|
|
199 | (3) |
|
Creating Database User Accounts |
|
|
202 | (2) |
|
Understanding Permissions |
|
|
204 | (6) |
|
Applying Statement Permissions |
|
|
205 | (2) |
|
Applying Object Permissions |
|
|
207 | (3) |
|
Understanding Database Roles |
|
|
210 | (7) |
|
Using Fixed Database Roles |
|
|
210 | (2) |
|
Using Custom Database Roles |
|
|
212 | (3) |
|
|
215 | (2) |
|
Understanding Permission States |
|
|
217 | (4) |
|
|
217 | (1) |
|
|
217 | (1) |
|
|
217 | (4) |
|
Introducing Ownership Chains |
|
|
221 | (2) |
|
Introducing Linked Server Security |
|
|
223 | (1) |
|
|
224 | (1) |
|
|
225 | (2) |
|
|
227 | (2) |
|
|
229 | (1) |
|
|
230 | (8) |
|
Answers to Review Questions |
|
|
238 | (3) |
|
Working with Relational Data |
|
|
241 | (40) |
|
Understanding and Using Transactions |
|
|
242 | (5) |
|
Executing Implicit and Explicit Transactions |
|
|
243 | (1) |
|
Committing and Rolling Back |
|
|
244 | (2) |
|
Executing Distributed Transactions |
|
|
246 | (1) |
|
|
247 | (5) |
|
Importing Data Using Bulk Insert |
|
|
247 | (1) |
|
Importing Data Using the bcp Utility |
|
|
248 | (2) |
|
|
250 | (2) |
|
|
252 | (1) |
|
Supporting the Bulk-Logged Recovery Model |
|
|
253 | (2) |
|
Supporting Different Collation Types and Orders When Querying Data |
|
|
255 | (11) |
|
Formatting and Converting Datatypes |
|
|
256 | (5) |
|
|
261 | (3) |
|
Understanding Datatype Precedence |
|
|
264 | (1) |
|
|
265 | (1) |
|
Introducing Error Handling |
|
|
266 | (6) |
|
|
266 | (1) |
|
|
267 | (1) |
|
|
267 | (1) |
|
|
268 | (4) |
|
|
272 | (1) |
|
|
272 | (2) |
|
|
274 | (4) |
|
Answers to Review Questions |
|
|
278 | (3) |
|
|
281 | (30) |
|
|
282 | (1) |
|
|
283 | (2) |
|
|
284 | (1) |
|
|
285 | (1) |
|
|
285 | (3) |
|
|
288 | (7) |
|
|
288 | (1) |
|
|
289 | (1) |
|
|
290 | (1) |
|
|
290 | (1) |
|
|
291 | (4) |
|
|
295 | (2) |
|
|
297 | (1) |
|
|
297 | (1) |
|
|
298 | (10) |
|
Answers to Review Questions |
|
|
308 | (3) |
|
Working with Service Broker and HTTP |
|
|
311 | (36) |
|
Understanding the SQL Server Service Broker Architecture |
|
|
312 | (1) |
|
Working with Service Broker |
|
|
313 | (5) |
|
|
313 | (1) |
|
|
314 | (1) |
|
|
315 | (1) |
|
|
316 | (1) |
|
|
317 | (1) |
|
|
318 | (10) |
|
|
318 | (3) |
|
|
321 | (2) |
|
Automating the Queue Processing |
|
|
323 | (5) |
|
Introducing HTTP Endpoints |
|
|
328 | (6) |
|
Configuring HTTP Endpoints |
|
|
329 | (5) |
|
|
334 | (1) |
|
|
334 | (2) |
|
|
336 | (1) |
|
|
337 | (8) |
|
Answers to Review Questions |
|
|
345 | (2) |
|
Maintaining and Automating SQL Server |
|
|
347 | (68) |
|
|
348 | (6) |
|
Understanding sys.DM_DB_INDEX_PHYSICAL_STATS |
|
|
349 | (3) |
|
Reorganizing and Rebuilding Indexes |
|
|
352 | (2) |
|
|
354 | (1) |
|
|
355 | (4) |
|
Understanding DBCC CHECKDB |
|
|
355 | (2) |
|
|
357 | (2) |
|
Understanding Automation Basics |
|
|
359 | (2) |
|
Configuring Database Mail |
|
|
361 | (5) |
|
|
366 | (3) |
|
|
369 | (7) |
|
|
376 | (13) |
|
Creating Event Alerts Based on Standard Errors |
|
|
377 | (5) |
|
Creating Event Alerts Based on Custom Errors |
|
|
382 | (3) |
|
Creating Performance Alerts |
|
|
385 | (2) |
|
|
387 | (2) |
|
Using the Maintenance Plan Wizard |
|
|
389 | (10) |
|
|
399 | (6) |
|
|
405 | (1) |
|
|
406 | (1) |
|
|
407 | (6) |
|
Answers to Review Questions |
|
|
413 | (2) |
|
Performing Backups and Restores |
|
|
415 | (48) |
|
|
416 | (22) |
|
Understanding How Backups Work |
|
|
417 | (1) |
|
|
418 | (1) |
|
|
419 | (4) |
|
Performing Differential Backups |
|
|
423 | (3) |
|
Performing Transaction Log Backups |
|
|
426 | (2) |
|
Performing Filegroup Backups |
|
|
428 | (6) |
|
Backing Up to Multiple Devices |
|
|
434 | (4) |
|
|
438 | (10) |
|
Performing Standard Restores |
|
|
439 | (4) |
|
Performing Point-in-Time Restores |
|
|
443 | (3) |
|
Performing Piecemeal Restores |
|
|
446 | (2) |
|
Devising a Backup Strategy |
|
|
448 | (4) |
|
Planning for Full Backups Only |
|
|
448 | (1) |
|
Planning for Full with Differential Backups |
|
|
449 | (1) |
|
Planning for Full with Transaction Log Backups |
|
|
450 | (1) |
|
Planning for Full, Differential, and Transaction Log Backups |
|
|
451 | (1) |
|
Planning for Filegroup Backups |
|
|
451 | (1) |
|
|
452 | (1) |
|
|
453 | (1) |
|
|
454 | (6) |
|
Answers to Review Questions |
|
|
460 | (3) |
|
Achieving High Availability through Replication |
|
|
463 | (58) |
|
|
464 | (1) |
|
Introducing the Publisher/Subscriber Metaphor |
|
|
465 | (2) |
|
|
466 | (1) |
|
|
467 | (1) |
|
Understanding Replication Factors and Distribution Types |
|
|
467 | (5) |
|
Using Distributed Transactions |
|
|
468 | (1) |
|
Using Transactional Replication |
|
|
469 | (1) |
|
Using Transactional Replication with Immediate Updating Subscribers |
|
|
469 | (1) |
|
Using Snapshot Replication |
|
|
470 | (1) |
|
Using Snapshot Replication with Immediate Updating Subscribers |
|
|
470 | (1) |
|
|
470 | (1) |
|
|
471 | (1) |
|
Understanding Replication Internals |
|
|
472 | (6) |
|
Understanding Merge Replication |
|
|
473 | (3) |
|
Understanding Snapshot Replication |
|
|
476 | (1) |
|
Understanding Transactional Replication |
|
|
476 | (2) |
|
Considering Publication Issues |
|
|
478 | (1) |
|
Considering Distributor Issues |
|
|
479 | (1) |
|
Introducing Replication Models |
|
|
480 | (4) |
|
Introducing Central Publisher/Central Distributor |
|
|
480 | (1) |
|
Introducing Remote Distribution |
|
|
481 | (1) |
|
Introducing Central Subscriber/Multiple Publishers |
|
|
482 | (1) |
|
Introducing Multiple Publishers/Multiple Subscribers |
|
|
483 | (1) |
|
Replicating over the Internet and to Heterogeneous Database Servers |
|
|
484 | (1) |
|
Using Heterogeneous Replication |
|
|
484 | (1) |
|
Using Internet Replication |
|
|
484 | (1) |
|
Installing and Using Replication |
|
|
485 | (18) |
|
Configuring SQL Server for Replication |
|
|
485 | (1) |
|
Installing a Distribution Server |
|
|
486 | (4) |
|
|
490 | (6) |
|
|
496 | (6) |
|
|
502 | (1) |
|
|
503 | (8) |
|
Considering Administrative Issues |
|
|
504 | (1) |
|
Considering Replication Backup Issues |
|
|
504 | (1) |
|
Using the Replication Monitor |
|
|
505 | (3) |
|
Working with Replication Scripts |
|
|
508 | (1) |
|
Enhancing Replication Performance |
|
|
509 | (2) |
|
|
511 | (1) |
|
|
512 | (1) |
|
|
513 | (6) |
|
Answers to Review Questions |
|
|
519 | (2) |
|
Introducing More High-Availability Methods |
|
|
521 | (36) |
|
Choosing the High-Availability Features You Need |
|
|
522 | (2) |
|
Implementing Database Mirroring |
|
|
523 | (1) |
|
Understanding Database Mirroring Concepts |
|
|
524 | (8) |
|
|
525 | (1) |
|
|
526 | (3) |
|
Specifying Partners and Witnesses |
|
|
529 | (1) |
|
Configuring the Operating Mode |
|
|
530 | (1) |
|
|
531 | (1) |
|
Implementing Log Shipping |
|
|
532 | (7) |
|
|
533 | (1) |
|
|
533 | (5) |
|
|
538 | (1) |
|
|
538 | (1) |
|
Managing Database Snapshots |
|
|
539 | (8) |
|
|
540 | (3) |
|
Reverting from a Snapshot |
|
|
543 | (4) |
|
|
547 | (1) |
|
|
548 | (1) |
|
|
549 | (6) |
|
Answers to Review Questions |
|
|
555 | (2) |
|
Monitoring and Optimizing SQL Server 2005 |
|
|
557 | (38) |
|
|
559 | (6) |
|
Monitoring with SQL Profiler |
|
|
565 | (11) |
|
|
570 | (2) |
|
Using the Database Engine Tuning Advisor |
|
|
572 | (4) |
|
Troubleshooting SQL Server |
|
|
576 | (7) |
|
Reading Error and Event Logs |
|
|
577 | (2) |
|
Troubleshooting Blocks and Deadlocks |
|
|
579 | (3) |
|
|
582 | (1) |
|
Using the Dedicated Administrator Connection |
|
|
583 | (2) |
|
|
585 | (2) |
|
|
587 | (1) |
|
|
588 | (5) |
|
Answers to Review Questions |
|
|
593 | (2) |
Glossary |
|
595 | (14) |
Index |
|
609 | |