Математика | ||||
Pro SQL Server 2005 -2006 by Thomas Rizzo str643 | ||||
Pro SQL Server 2005 -2006 by Thomas Rizzo str643
2006 by Thomas Rizzo, Adam Machanic, Julian Skinner, Louis Davidson, Robin Dewson, Jan Narkiewicz, Joseph Sack, Rob Walters Contents About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xvii About the Technical Reviewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii ¦CHAPTER 1 SQL Server Overview and Installation . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Evolution of SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 SQL Server 2005 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Editions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Minimum System Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Installation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Server Registration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Sample Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Side-by-Side Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Upgrading from SQL Server 2000 and 7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 ¦CHAPTER 2 SQL Server Management Technologies . . . . . . . . . . . . . . . . . . . . . . . 25 Connecting to and Managing Your SQL Servers . . . . . . . . . . . . . . . . . . . . . . . . . 25 Context-Sensitive Menus for Each Object Type . . . . . . . . . . . . . . . . . . . . . 26 Mobile Database Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 SQL Server 2000 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 User Interface Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Asynchronous Treeview and Object Filtering . . . . . . . . . . . . . . . . . . . . . . . 29 Nonmodal and Resizable Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Script and Schedule Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Code Authoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Results Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Activity Monitor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Summary Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 vi ¦CONTENTS Functional Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Dedicated Administrator Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Deadlock Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Performance Monitor Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Server Registration Import/Export. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Maintenance Plan Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 SQL Server Agent Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Database Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Catalog Views and Dynamic Management Views . . . . . . . . . . . . . . . . . . . . 41 Default Server Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Profiler Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 SQL Configuration Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Surface Area Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Enhanced Help and Community Integration . . . . . . . . . . . . . . . . . . . . . . . . 47 SQLCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Server Management Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 ¦CHAPTER 3 T-SQL Enhancements for Developers . . . . . . . . . . . . . . . . . . . . . . . . . 53 Enhancements Affecting DML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Old-Style Outer Joins Deprecated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Common Table Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 TOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Extensions to the FROM Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Ranking Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 EXCEPT and INTERSECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Synonyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 General Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Error Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 .WRITE Extension to the UPDATE Statement . . . . . . . . . . . . . . . . . . . . . . . . 94 EXECUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Code Security Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 .NET Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 ¦CHAPTER 4 T-SQL Enhancements for DBAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Metadata Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Compatibility Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Catalog Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Dynamic Management Views and Functions. . . . . . . . . . . . . . . . . . . . . . . 106 ¦CONTENTS vii DDL Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Creating and Altering DDL Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Dropping DDL Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Enabling and Disabling DDL Triggers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Enumerating DDL Triggers Using Catalog Views . . . . . . . . . . . . . . . . . . . 109 Programming DDL Triggers with the eventdata() Function . . . . . . . . . . . 110 Indexing and Performance Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Online Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Controlling Locking During Index Creation . . . . . . . . . . . . . . . . . . . . . . . . 113 Creating Indexes with Additional Columns Included. . . . . . . . . . . . . . . . . 113 Altering Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Using Statistics for Correlated DATETIME Columns . . . . . . . . . . . . . . . . . 117 Improving Performance of Ordering for Tertiary Collations . . . . . . . . . . . 118 Table and Index Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Partition Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Partition Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Creating Partitioned Tables and Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Adding and Removing Partitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Modifying Partition Functions and Schemes . . . . . . . . . . . . . . . . . . . . . . . 123 Switching Tables into and out of Partitions . . . . . . . . . . . . . . . . . . . . . . . . 124 Managing Table and Index Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Enhancements to Tables and Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Enhancements to Indexed Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Persisted Computed Columns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 SNAPSHOT Isolation Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Database Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Data Integrity Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Verifying a Database’s Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Putting a Database into an Emergency State . . . . . . . . . . . . . . . . . . . . . . 132 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ¦CHAPTER 5 .NET Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Introduction to SQL Server .NET Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Why Does SQL Server 2005 Host the CLR?. . . . . . . . . . . . . . . . . . . . . . . . 136 When to Use CLR Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 When Not to Use CLR Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 How SQL Server Hosts .NET: An Architectural Overview . . . . . . . . . . . . . 137 SQL Server .NET Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Enhancements to ADO.NET for SQL Server Hosting . . . . . . . . . . . . . . . . . 138 Overview of the New .NET Namespaces for SQL Server . . . . . . . . . . . . . 138 viii ¦CONTENTS Programming a CLR Stored Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Starting a Visual Studio 2005 SQL Server Project. . . . . . . . . . . . . . . . . . . 140 Anatomy of a Stored Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Adding Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Defining the Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Using the SqlPipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Putting It All Together: Coding the Body of the Stored Procedure. . . . . . 148 Testing the Stored Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Debugging the Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Throwing Exceptions in CLR Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Deploying CLR Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 ¦CHAPTER 6 Programming Assemblies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 CLR User-Defined Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Applications for User-Defined Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Adding a User-Defined Type to a SQL Server Project. . . . . . . . . . . . . . . . 162 Parts of a User-Defined Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 A Simple Example: The PhoneNumber Type . . . . . . . . . . . . . . . . . . . . . . . 167 Another Example: The StringArray Type . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Managing User-Defined Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 CLR User-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Adding a User-Defined Function to a Visual Studio Project . . . . . . . . . . . 184 The Visual Studio 2005 User-Defined Function Template . . . . . . . . . . . . 184 The SqlFunction Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Scalar User-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Table-Valued User-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Managing CLR User-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 CLR User-Defined Aggregates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Adding a User-Defined Aggregate to a SQL Server Project . . . . . . . . . . . 193 Parts of a User-Defined Aggregate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 CLR User-Defined Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Adding a CLR User-Defined Trigger to a SQL Server Project. . . . . . . . . . 200 Programming CLR Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Managing User-Defined Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Managing Assemblies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 A Note Regarding Visual Studio 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 ¦CONTENTS ix ¦CHAPTER 7 SQL Server and XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 What Is XML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 What Are XPath and the XMLDOM? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 XPath Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 XPath Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 The XMLDOM–XML Document Object Model . . . . . . . . . . . . . . . . . . . . . . 211 The XPathDocument, XPathNavigator, and XPathExpression Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Getting XML into the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 What Is SQLXML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Configuring SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 OPENXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 SQLXML: XML Views Using Annotated XML Schemas . . . . . . . . . . . . . . . 220 SQLXML Updategrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 XML BulkLoad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Getting XML Out of the Database: FOR XML . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 FOR XML (Server-Side) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 FOR XML (Client-Side) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Using Templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Enhancements to FOR XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Programming SQLXML from .NET and COM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 SqlXmlCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 SqlXmlParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 SqlXmlAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 SqlXmlException. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Code Samples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 FOR XML: Server-Side and Client-Side . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Using an XMLTextReader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Using Parameters with SQLXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Executing XPath or SQL Queries with Templates . . . . . . . . . . . . . . . . . . . 244 Interoperating with the ADO.NET Dataset . . . . . . . . . . . . . . . . . . . . . . . . . 244 Programming Updategrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 ¦CHAPTER 8 SQL Server 2005 XML and XQuery Support . . . . . . . . . . . . . . . . . . 247 Using the XML Datatype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Understanding How XML Is Stored by SQL Server . . . . . . . . . . . . . . . . . . 249 Creating XML Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Setting Permissions for Schema Creation . . . . . . . . . . . . . . . . . . . . . . . . . 254 Constraining XML Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Examining the XML Datatype Limitations . . . . . . . . . . . . . . . . . . . . . . . . . 256 x ¦CONTENTS Inserting Data into XML Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Using SSIS with XML Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Bulkloading XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Writing a Custom Query or Application . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Querying XML Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 XQuery 101 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Basic XML Query Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Cross-Domain Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Modifying XML Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Limitations of XML Modification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Indexing XML for Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Understanding How XML Indexing Works . . . . . . . . . . . . . . . . . . . . . . . . . 271 Examining Secondary XML Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Full-Text Search and the XML Datatype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Dynamic Management Views and XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Applications and XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 XML Web Services Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Creating an Endpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Using Advanced Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Monitoring Performance of XML Web Services. . . . . . . . . . . . . . . . . . . . . 285 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 ¦CHAPTER 9 SQL Server 2005 Reporting Services . . . . . . . . . . . . . . . . . . . . . . . . . 287 Reporting Services Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Report Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Metadata Catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Report Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Report Manager Web Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Reporting Services Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Building a Basic Report with SSRS 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Launching the Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Working with Data Sources and Datasets . . . . . . . . . . . . . . . . . . . . . . . . . 293 Laying Out and Previewing the Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Working with Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Deploying Your Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 Upgrading from SQL Server 2000 Reporting Services . . . . . . . . . . . . . . . . . . . 295 Licensing Changes for Reporting Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 SQL Server Management Studio Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Walkthrough: Management Studio and Reporting Services. . . . . . . . . . . 298 Management Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 WMI Provider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Management and Execution Web Services . . . . . . . . . . . . . . . . . . . . . . . . 307 Reporting Services Configuration Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 ¦CONTENTS xi Report Design and Execution Improvements . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 Expression Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Multivalued Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 DatePicker for Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 Interactive Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Analysis Services Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Walkthrough: Building a Report in BIDS. . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Floating Headers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Data Source Changes: Expressions, XML/Web Services, SSIS, and SAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Custom Report Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Visual Studio Integration and ReportViewer Controls . . . . . . . . . . . . . . . . . . . . 329 Using WinForm Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Working with the ReportViewer Controls Programmatically . . . . . . . . . . 332 LocalReport and ServerReport Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 SharePoint Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 End-User Ad Hoc Query and Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 The Report Builder Client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 The Semantic Model Definition Language . . . . . . . . . . . . . . . . . . . . . . . . . 338 Walkthrough: Report Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 ¦CHAPTER 10 Analysis Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 SSAS 2005 Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 Performance, Scalability, Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Usability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 What Is Analysis? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 OLAP, OLTP, and Data Warehouses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 OLAP Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Cubes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Measures and Fact Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Dimensions and Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Analysis Services Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 Defining Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 Designers vs. Wizards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 Defining Data Source Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 Defining Cubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 Deploying Projects and Configuring Projects for Deployment . . . . . . . . . 367 Cube Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 xii ¦CONTENTS Browsing Cubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 Browsing Cubes with Hierarchies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 Managing Displayed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 Calculations and MDX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 Key Performance Indicators (KPIs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 Analysis Services Scripting Language (ASSL) . . . . . . . . . . . . . . . . . . . . . . . . . . 382 Example ASSL Object: A Data Source View with a Named Query. . . . . . 382 ASSL Drilldown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 ¦CHAPTER 11 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 A Word about sa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 Surface Area Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 Remote Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 Dedicated Administrator Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 .NET Framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 Database Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 SQLMail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 Service Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 HTTP Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 Database Mirroring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 Web Assistant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 xp_cmdshell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 Ad Hoc Remote Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 OLE Automation XPs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 SMO and DMO XPs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 Principals and Securables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 Principals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 Securables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 Types of Permission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 Managing Permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 Code Access Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 Imperative and Declarative CAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 Using CAS with SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 The SQL Server 2005 Encryption Hierarchy . . . . . . . . . . . . . . . . . . . . . . . 411 Encryption with a User-supplied Password . . . . . . . . . . . . . . . . . . . . . . . . 411 Encryption with a Symmetric Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 Asymmetric Key Encryption. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 Encryption with a Certificate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 Certificates and Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 ¦CONTENTS xiii ¦CHAPTER 12 Service Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 What Is Service Broker? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 Service Broker Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 Service Broker Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 Creating Service Broker Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 Enabling Service Broker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 Creating Message Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 Creating Contracts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 Creating Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 Creating Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 Creating Service Broker Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . 425 A Simple Service Broker Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 Service Broker Routing and Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 Creating Distributed Service Broker Applications . . . . . . . . . . . . . . . . . . . 434 Distributed Service Broker Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 ¦CHAPTER 13 Automation and Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 SQL Server Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 Step 1: Connect to SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 Step 2: Create the Agent Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 Security Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 Agent Subsytems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 Sharing Job Schedules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 Logging to the sysjobstepslogs Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 WMI Events and Agent Alerts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 Agent Performance Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 Agent Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 Maintenance Plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 Creating a Maintenance Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 Maintenance Plan Designer Document Window . . . . . . . . . . . . . . . . . . . . 483 SQLCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 Connecting to SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 Passing Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 Using the Dedicated Admin Connection. . . . . . . . . . . . . . . . . . . . . . . . . . . 490 Creating Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 Database Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 Configuring Database Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 Sending Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 xiv ¦CONTENTS SQL Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 Performance Monitor Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 ShowPlan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 Deadlock Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 ¦CHAPTER 14 Integration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 What’s New in SSIS? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 SSIS’s New IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 Connecting to SSIS in Management Studio . . . . . . . . . . . . . . . . . . . . . . . . 509 Creating a New SSIS Project in BIDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 SSIS Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 Control Flow Design Surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 Data Flow Design Surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 Event Handlers Design Surface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 Package Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 Connection Managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 Solution Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 Properties Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 Control Flow Toolbox Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 Analysis Services Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 Data Flow Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 Execute Package Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 Bulk Insert Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 Execute SQL Task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 Execute Process Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 File System Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 File Transfer Protocol Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 Maintenance Plan Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 Message Queue Task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 Send Mail Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 Scripting Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 Web Service Task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 WMI Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 XML Task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 Data Flow Designer Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 Source Adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 Destination Adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 ¦CONTENTS xv Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 Using the Package Configuration Organizer . . . . . . . . . . . . . . . . . . . . . . . 554 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 Precedence Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Control Flow Visual Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Data Flow Visual Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Data Viewers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Breakpoints Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Other Debug Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 The SSIS Package Deployment Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 Migrating SQL Server 2000 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 Scheduling an SSIS Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 ¦CHAPTER 15 Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 High Availability Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 Database Mirroring Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 Database Mirroring in Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 Setting Up Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 Prerequisites, Connectivity, and Security . . . . . . . . . . . . . . . . . . . . . . . . . 573 Back Up and Restore the Principal Database . . . . . . . . . . . . . . . . . . . . . . 576 Establish the Principal/Mirror Partnership . . . . . . . . . . . . . . . . . . . . . . . . . 577 Changing Transaction Safety Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 Database Mirroring States, Heartbeats, and Quorums . . . . . . . . . . . . . . 578 Initiating a Failover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 Suspending and Resuming Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 Terminating Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 Full-Text Indexing and Mirroring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 Service Broker and Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 Setting Up Mirroring Using Management Studio. . . . . . . . . . . . . . . . . . . . 581 Client Applications and Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 Monitoring Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 Catalog Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 Performance Monitor Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 Windows Event Log and SQL Server Error Log . . . . . . . . . . . . . . . . . . . . . 593 Performance Considerations for Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 Limitations of Database Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 Sample Application Walk-Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 xvi ¦CONTENTS Database Snapshots and Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 Database Snapshots Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 Working with Snapshots in T-SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 Performance Considerations When Using Snapshots on Mirrors . . . . . . 604 Using, Monitoring, and Managing Database Snapshots. . . . . . . . . . . . . . 604 Programming Database Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 Limitations of Database Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 Windows Clustering in SQL Server 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 Replication in SQL Server 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 ¦CHAPTER 16 Notification Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 Notification Services Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 Subscribers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 Building a Notification Services Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 Defining an NS Instance: The Instance Configuration File . . . . . . . . . . . . 613 Defining the NS Application: The Application Definition File . . . . . . . . . . 617 Compiling and Running Your NS Application . . . . . . . . . . . . . . . . . . . . . . . . . . . 633 Monitoring and Troubleshooting Your NS Application . . . . . . . . . . . . . . . . . . . . 636 Programmatically Working with NS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 Programming NS from Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 Managing NS Programmatically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 Цена: 200руб. |
||||