Microsoft SQL Server 2000 Unleashed, 2E offers a variety of topics for system and database administrators to help them learn new features of the product and to solve problems they face on a daily basis. It shows them how to build upon their working knowledge of the product and take their experience and knowledge to a higher level. This new edition of Microsoft SQL Server 2000 Unleashed covers the latest updates and service packs to SQL Server 2000, including full support for XML, notification services, and SQL Server CE.
About the Author
Ray Rankins is currently owner and president of Gotham Consulting Services, Inc. (www.gothamconsulting.com) near Saratoga Springs, New York. Ray has been working with Sybase and Microsoft SQL Server for more than 15 years as a database administrator, database designer, project manager, application developer, consultant, courseware developer, and instructor. He has worked in a variety of industries including financial, manufacturing, health care, retail, insurance, communications, public utilities, and government. His expertise is in database performance and tuning, query analysis, advanced SQL programming and stored procedure development, and database application design and development. Ray's presentations on these topics at user group conferences have been very well received. Ray is coauthor of Sybase SQL Server 11 Unleashed, Sybase SQL Server 11 DBA Survival Guide, Second Edition, and Microsoft SQL Server 6.5 Unleashed (all editions), all published by Sams Publishing, and he has written articles for publication in database-related periodicals. As an instructor, Ray regularly teaches classes on SQL, advanced SQL programming and optimization, database design, database administration, and database performance and tuning. Ray's ability to bring his real-world experience into the classroom consistently brings very high marks from students in his classes for both his instructional skills and courseware. He can be reached at email@example.com.
Paul Bertucci is a senior director with Collaborative Consulting, LLC of Boston, Massachusetts (www.collaborative.ws). He leads the San Francisco, California database and performance engineering practices. He was formerly the founder of Database Architechs (www.dbarchitechs.com) and he has more than 20 years of experience doing database design, data architecture, data replication, performance and tuning, distributed data systems, data integration, and systems integration for numerous Fortune 500 companies including Intel, 3COM, Apple, Toshiba, Lockheed, Wells Fargo, Safeway, Texaco, Charles Schwab, Cisco Systems, Sybase, Webgain, Breg, Channell, and i2 Technologies. He has authored numerous articles, standards, and courses such as Sybase's "Performance and Tuning" course and "Physical Database Design" course. Paul is a frequent conference speaker and regularly teaches database design, performance and tuning, data modeling, OLAP, Supply Chain Management, and SQL courses. He has worked heavily with MS SQL Server, Sybase, DB2, and Oracle, and has architected several commercially available tools in the database, data modeling, performance and tuning, and data integration arena. Paul serves part-time as chief technical advisor for a data integration server software company as well as an advisory board member of a software services company in Silicon Valley. Paul received his formal education in computer science from UC Berkeley. He lives in northern California with his wife, Vilay, and five children, Donny, Juliana, Paul Jr., Marissa, and Nina. Paul can still be reached at firstname.lastname@example.org or also at email@example.com.
Paul Jensen is an MCDBA, MCT, MCSE, and OCP (Oracle Certified Professional) who has been involved with database and system administration for almost 15 years. His experience has made him a popular trainer, and the past few years have seen him bouncing around North America and Europe in his role as an MCT, bringing new SQL Server converts into the fold. Paul lives in Ottawa, Canada, and can be contacted through his Web site at www.infojen.com.
Table of Contents
(NOTE:Each chapter concludes with a Summary.)
I. WELCOME TO MICROSOFT SQL SERVER.
1. The Microsoft SQL Server Environment.
Overview of Client/Server. SQL Server 2000 Components and Features.
2. SQL Server 2000 Environments and Editions.
SQL Server 2000 Environments. SQL Server 2000 Editions. SQL Server Licensing Models.
3. What's New in SQL Server 2000.
New SQL Server 2000 Features. SQL Server 2000 Enhancements. SQL Server and the .NET Framework.
II. SQL SERVER TOOLS AND UTILITIES.
4. SQL Server Enterprise Manager.
Establishing Server Groups and Registering SQL Server in Enterprise Manager. Server Configuration. Databases. Security. Server Management. Data Transformation Services. Support Services. System Tools. Replication. Using the Database Taskpad. Using the Query Designer. Scripting Objects. Getting Help.
5. SQL Server Command-Line Utilities.
BCP. Data Transformation Services Utilities. ISQL/OSQL. makepipe and readpipe. ODBCcmpt. odbcping. rebuildm. regrebld. Replication Utilities. SQLDiag. SQLMaint. SQLServr. VSwitch.
6. SQL Server Query Analyzer and SQL Debugger.
Query Analyzer. The SQL Debugger.
7. Using the SQL Server Profiler.
SQL Server Profiler Architecture. Creating Traces. Saving and Exporting Traces. Replaying Trace Data. Defining Server-Side Traces. Profiler Usage Scenarios.
III. SQL SERVER ADMINISTRATION.
8. Installing and Upgrading SQL Server.
Choosing a SQL Server Edition. Hardware Requirements. Software Requirements. Selecting Installation Configuration Options. Verifying Installation. Starting, Stopping, and Pausing SQL Server. Post-Installation Configuration. Installation Troubleshooting. Remote Installation. Unattended Installation. Installing a Named Instance. Upgrading from Previous Versions.
9. Client Installation and Configuration.
The SQL Server Client Architecture. Installing Client Tools. Client Configuration. Network Protocol Support. Installing ODBC. Microsoft Driver for JDBC. Connecting to SQL Server over the Internet.
10. SQL Server System and Database Administration.
Responsibilities of the System Administrator. System Databases. System Tables. System-Stored Procedures. Useful System Procedures. Other Methods of Querying the System Tables.
11. Creating and Managing Databases.
What Makes Up a SQL Server Database? Data Storage in SQL Server. Database Files. Creating Databases. Managing Databases. Setting Database Options.
12. Creating and Managing Tables in SQL Server.
Datatypes. Numeric Datatypes. Datatype Synonyms. User-Defined Datatypes. Creating Tables. Creating Tables Using T-SQL. Creating Tables Using Table Designer. Viewing Table Properties and Data in Enterprise Manager. Limitations on Table Size and Dimensions. Dropping Tables. Temporary Tables.
13. Creating and Managing Indexes.
Types of Indexes. Creating Indexes Using T-SQL. Creating Indexes Using Enterprise Manager. Managing Indexes. Dropping Indexes.
14. Implementing Data Integrity.
Types of Data Integrity. Enforcing Data Integrity. Constraints. Rules. Defaults.
15. Security and User Administration.
An Overview of SQL Server Security. Authentication Methods. SQL Server Security: Logins. SQL Server Security: Users. SQL Server Security: Roles. Managing SQL Server Logins. Managing SQL Server Users. Managing Database Roles. Managing SQL Server Permissions. SQL Server Permission Approaches. Object Owners. Using Encryption.
16. Database Backup and Restore.
Developing a Backup and Restore Plan. Why Back Up Your Databases? A Typical Backup and Restore Scenario. Types of Backups. Setting the Recovery Mode. Backup Devices. Media Sets and Families. Creating Backup Devices with Transact-SQL. Creating Backup Devices with SQL Enterprise Manager. Backing Up the Database. Backing Up the Transaction Log. Restoring the Database. Transact-SQL Restore Examples. Restoring to a Different Database. Restoring a File or Filegroup. Restoring to a Point in Time. Performing a Partial Database Restore. Restoring the System Databases. Additional Backup Considerations.
17. Database Maintenance.
What Needs to Be Maintained. The Database Maintenance Plan Wizard. Setting Up Your Own Maintenance Tasks. The Database Console Commands (DBCC). Using SQLMAINT.EXE for Database Maintenance.
18. SQL Server Scheduling and Notification.
SQL Agent Overview. Configuring SQL Server Agent. Viewing the SQL Server Agent Error Log. Operators. Jobs. Alerts. Scripting Jobs and Alerts. Multiserver Job Management. Event Forwarding.
19. Managing Linked and Remote Servers.
Remote Servers. Linked Servers. Adding, Dropping, and Configuring Linked Servers. Mapping Local Logins to Logins on Linked Servers. Obtaining General Information about Linked Servers. Executing a Stored Procedure via a Linked Server. Setting Up Linked Servers through Enterprise Manager.
20. Importing and Exporting SQL Server Data Using BCP and DTS.
Bulk-Copy Program (BCP). The Bulk-Copy Program. Logged and Non-Logged Operations. The BULK INSERT Statement (Transact-SQL). Improving Load Performance. BCP Extras. Data Transformation Services (DTS). DTS Architecture and Concepts. Package Execution Utilities. Running the DTS Wizard. DTS Designer. A Bit More on Metadata.
21. Administering Very Large SQL Server Databases.
Do I Have a Very Large Database (VLDB)? VLDB Maintenance Issues. Partitioning Data.
22. Data Replication.
What Is Replication? The Publisher, Distributor, and Subscriber Metaphor. Replication Scenarios. Replication Agents. Planning for SQL Server Data Replication. SQL Server Replication Types. User Requirements Drive the Replication Design. Setting Up Replication. Scripting Replication. Monitoring Replication.
23. SQL Mail.
Setting Up an E-Mail Client/Profile. Configuring SQL Mail. Configuring SQLAgentMail. SQL Mail Stored Procedures.
24. SQL Server Clustering.
From Windows NT Enterprise Edition to Windows 2000 Advanced Server. Cluster Services. SQL Clustering and Fail-Over Support. Network Load Balancing.
25. Defining System Administration and Naming Standards.
The SQL Server Environment Approach. SQL Server Naming Standards.
26. Using Transact-SQL in SQL Server 2000.
T-SQL and ANSI/ISO SQL. What's New for T-SQL in SQL Server 2000. SELECT, INSERT, UPDATE, and DELETE. SQL Server Functions. Programming Constructs. Cursors.
27. Creating and Managing Views in SQL Server.
Definition of Views. Using Views to Simplify Retrieval of Data. Using Views to Hide Underlying Table Structures. Using Views as a Security Mechanism. Data Modifications and Views. Creating Views. Altering and Dropping Views. Partitioned Views. Indexed Views. Views and Query Performance.
28. Creating and Managing Stored Procedures in SQL Server.
Advantages of Stored Procedures. Creating and Executing Stored Procedures. Deferred Name Resolution. Viewing and Modifying Stored Procedures. Using Input Parameters. Using Output Parameters. Returning Procedure Status. Cursors in Stored Procedures. Nested Stored Procedures. Using Temporary Tables in Stored Procedures. Using the table Datatype. Remote Stored Procedures. Debugging Stored Procedures with Query Analyzer. Debugging with Microsoft Visual Studio and Visual Basic. System Stored Procedures. Stored-Procedure Performance. Using Dynamic SQL in Stored Procedures. Autostart Procedures. Extended Stored Procedures. Stored Procedure Coding Guidelines and Limitations.
29. Creating and Managing Triggers.
Benefits and Uses of Triggers. Creating Triggers. AFTER Triggers. inserted and deleted Tables. Checking for Column Updates. Nested Triggers. Recursive Triggers. Enforcing Referential Integrity with Triggers. INSTEAD OF Triggers.
30. User-Defined Functions.
Why Use User-Defined Functions? Types of Functions. Creating and Managing Functions. System-Wide Table Valued Functions. Rewriting Stored Procedures as Functions.
31. Transaction Management and the Transaction Log.
What Is a Transaction? How SQL Server Manages Transactions. Defining Transactions. Transaction Logging and the Recovery Process. Transactions and Batches. Transactions and Stored Procedures. Transactions and Triggers. Transactions and Locking. Coding Effective Transactions. Long-Running Transactions. Bound Connections. Distributed Transactions.
32. Distributed Transaction Processing.
Distributed Transaction Processing. Distributed Queries. Linked Servers. Distributed Transactions. MS DTC Architecture.
V. SQL SERVER INTERNALS AND PERFORMANCE TUNING.
33. SQL Server Internals.
SQL Server Memory Management. SQL Server Process Management. SQL Server Disk I/O. SQL Server Storage Structures. Database Files and Filegroups. Database Pages. Tables. Indexes. Data Modification and Performance.
34. Indexes and Performance.
Index Usage Criteria. Index Selection. Evaluating Index Usefulness. Index Statistics. Index Design Guidelines. Indexed Views. Indexes on Computed Columns. The Index Tuning Wizard. Choosing Indexes: Query Versus Update Performance.
35. Understanding Query Optimization.
What Is a Query Optimizer? Query Compilation and Optimization. Step 1: Query Analysis. Step 2: Index Selection. Step 3: Join Selection. Step 4: Execution Plan Selection. Reusing Query Plans. Other Query Processing Strategies. Parallel Query Processing. Data Warehousing and Large Database Query Strategies. Common Query Optimization Problems. Managing the Optimizer.
36. Query Analysis.
Displaying Execution Plans in Query Analyzer. Query Analyzer Server Trace. Query Analyzer Client Statistics. SHOWPLAN_ALL and SHOWPLAN_TEXT. Statistics. Query Analysis with SQL Profiler.
37. Monitoring SQL Server Performance.
Performance-Monitoring Approach. Performance Monitor. Windows Performance Counters. SQL Server Performance Counters. SNMP Support. Using DBCC to Examine Performance. Other SQL Server Performance Considerations.
38. Locking and Performance.
The Need for Locking. Transaction Isolation Levels in SQL Server. The Lock Manager. Monitoring Lock Activity in SQL Server. SQL Server Lock Types. SQL Server Lock Granularity. Lock Compatibility. Locking Contention and Deadlocks. Table Hints for Locking. Optimistic Locking.
39. Database Design and Performance.
Basic Tenets of Designing for Performance. Logical Database Design Issues. Denormalizing the Database. Database Filegroups and Performance. RAID Technology.
40. Configuring, Tuning, and Optimizing SQL Server Options.
SQL Server Instance Architecture. Configuration Options. Fixing an Incorrect Option Setting. Setting Configuration Options with SQL Enterprise Manager. Obsolete Configuration Options. Configuration Options and Performance.
VI. ADDITIONAL SQL SERVER FEATURES.
Creating a Virtual Directory for Use with SQL Server 2000. Exploring Extensible Markup Language (
42. Microsoft SQL Server Analysis Services.
What Is Analysis Services and OLAP? Understanding the Analysis Services Environment and the “Land of Wizards”. An Analytics Design Methodology. An Analytics Mini-Methodology. An OLAP Requirements Example. OLAP Cube Creation. Creating an OLAP Database. Working with a Relational Database. Files at the Operating System Level.
43. Microsoft Transaction Server.
MTS Overview. Building an MTS Component. Installing an MTS Component. Configuring Security. Running an MTS Application. Using Database Connection Pooling.
44. SQL Server Full-Text Search Services.
How Search Server Works. Setting Up a Full-Text Index. Maintaining Full-Text Indexes. Full-Text Searches. Using Document Filters.
45. SQL Server Notification Services.
Introduction to SQL Notification Services. Obtaining and Installing SQL Notification Services. SQL Notification Services Architecture. Instances and Applications. Deploying and Configuring a Notification Services Instance. Monitoring and Administering a Notification Services Instance.
46. SQL Server and the Microsoft .NET Framework.
The Microsoft .NET Framework Class Library. ADO.NET. .NET SQL Providers. .NET Concurrency Model (Default).
47. English Query.
What Is English Query? Getting Started with English Query. How Does English Query Work? Building a Simple English Query Application. Contextual Information.