Inside Microsoft SQL Server 7.0

by ;
Format: Hardcover
Pub. Date: 1999-04-01
Publisher(s): Microsoft Pr
List Price: $59.99

Rent Book

Select for Price
There was a problem. Please try again later.

New Book

We're Sorry
Sold Out

Used Book

We're Sorry
Sold Out

eBook

We're Sorry
Not Available

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

A Microsoft SQL Server guru provides a comprehensive guide with updated, authoritative advice for installing, administering, and programming with version 7.0. The CD-ROM contains product evaluation documentation, sample code, and scripts, white papers, and a benchmarking kit.

Author Biography

Currently a Microsoft product unit manager, Ron Soukup is one of the original members of the SQL Server team at Microsoft. He is a 17-year veteran of computer and database systems design, including 10+ years leading Microsoft's SQL Server development group. Kalen Delaney has worked extensively with SQL Server since 1987 and brings more than 20 years' experience in technical support and education to this book. As a consultant to Microsoft, Kalen has developed advanced training materials on SQL Server, including curriculum supporting version 7.0. She is a columnist for SQL Server Magazine.

Table of Contents

Foreword xxiii
Preface xxv
Preface to the First Edition xxix
PART I: OVERVIEW
The Evolution of Microsoft SQL Server: 1989 to 1999
3(28)
Ron's Story
6(1)
Kalen's Story
7(1)
Microsoft SQL Server Ships
8(2)
Development Roles Evolve
10(2)
OS/2 and Friendly Fire
12(1)
Version 4.2
13(3)
OS/2 2.0 Release on Hold
14(1)
Version 4.2 Released
15(1)
SQL Server for Windows NT
16(5)
Success Brings Fundamental Change
21(2)
The End of Joint Development
23(2)
The Charge to SQL95
25(2)
The Next Version
27(1)
The Secret of the Sphinx
28(2)
The New Future
30(1)
A Tour of SQL Server
31(44)
The SQL Server Engine
32(6)
Transct-SQL
33(5)
DBMS-Enforced Data Integrity
38(5)
Declarative Data Integrity
38(2)
Datatypes
40(1)
CHECK Constraints and Rules
40(1)
Defaults
41(1)
Triggers
41(2)
Transaction Processing
43(2)
Atomicity
43(1)
Consistency
44(1)
Isolation
44(1)
Durability
44(1)
Symmetric Server Architecture
45(2)
Traditional Process/Thread Model
45(1)
SQL Server Process/Thread Model
46(1)
Multiuser Performance
47(1)
Security
47(2)
Monitoring and Managing Security
48(1)
High Availability
49(1)
Distributed Data Processing
50(1)
Data Replication
51(3)
Systems Management
54(7)
SQL Server Enterprise Manager
54(2)
Distributed Management Objects
56(2)
Automation and Visual Basic Scripting
58(1)
SQL Server Agent
59(2)
SQL Server Utilities and Extensions
61(7)
Web Assistant Wizard and Internet Enabling
61(2)
SQL Server Profiler
63(1)
SQL Server Service Manager
63(1)
Windows NT Performance Monitor Integration
64(1)
Client Network Utility
64(1)
Server Network Utility
65(1)
SQL Server Installation
65(1)
ISQL and OSQL
66(1)
SQL Server Query Analyzer
67(1)
Bulk Copy and Data Transformation Services
67(1)
SNMP Integration
67(1)
SQL Server Books Online
68(1)
Client Development Interfaces
68(3)
ODBC
69(1)
RDO
69(1)
OLE DB
69(1)
ADO
69(1)
DB-Library
70(1)
ESQL for C
70(1)
Server Development Interface
70(1)
Summary
71(4)
PART II: ARCHITECTURAL OVERVIEW
SQL Server Architecture
75(46)
The SQL Server Engine
75(24)
The Net-Library
75(3)
Open Data Services
78(5)
The Relational Engine and the Storage Engine
83(5)
The Access Methods Manager
88(1)
The Row Operations Manager and the Index Manager
88(5)
The Page Manager and the Text Manager
93(1)
The Transaction Manager
94(4)
The Lock Manager
98(1)
Other Managers
98(1)
Managing Memory
99(8)
The Buffer Manager and Memory Pools
99(1)
Access to In-Memory Pages
99(1)
Access to Free Pages (lazywriter)
100(2)
Checkpoints
102(2)
Accessing Pages via the Buffer Manager
104(1)
Large Memory Issues
104(2)
The Log Manager
106(1)
Transaction Logging and Recovery
107(5)
Locking and Recovery
110(1)
Page LSNs and Recovery
110(2)
The SQL Server Kernel and Interaction with the Operationg System
112(6)
Threading and Symmetric Multiprocessing
113(2)
The Worker Thread Pool
115(2)
Disk I/O on Windows NT
117(1)
Summary
118(3)
PART III: USING MICROSOFT SQL SERVER
Planning for and Installing SQL Server
121(58)
SQL Server Editions
121(3)
User Connections
123(1)
Embedded SQL Server
124(1)
Hardware Guidelines
124(4)
Use Hardware on the Windows Hardware Compatibility List
124(1)
Choose a Good Processor
125(1)
Performance = Fn(Processor Cycles, Memory, I/O Throughput)
126(1)
Invest in Benchmarking
127(1)
Hardware Components
128(22)
The Processor
128(2)
Memory
130(2)
Disk Drives, Controllers, and Disk Arrays
132(2)
RAID Solutions
134(10)
More About Drives and Controllers
144(2)
Uninteruptible Power Supply
146(1)
The Disk Subsystem
147(1)
Fallback Server Capability
148(1)
Other Hardware Considerations
149(1)
The Operating System
150(1)
The File System
151(1)
Security and the User Context
152(2)
Licensing
154(5)
Licensing Scenarios
155(1)
Internet Licensing
156(1)
Licensing Limits
157(2)
Network Protocols
159(4)
Character Sets and Sort Orders
163(8)
Character Sets
163(3)
Sort Orders
166(5)
Installing SQL Server
171(1)
Basic Configuration After Installation
172(2)
Starting the SQL Server Service
172(1)
Changing the System Administrator Password
172(1)
Configuring SQL Server's Error Log
173(1)
Remote and Unattended Installation
174(4)
Remote Installation
174(1)
Unattended Installation
175(1)
Changing Installation Options
176(1)
Adding Additional Components
177(1)
Summary
178(1)
Databases and Database Files
179(34)
Special System Databases
180(2)
master
180(1)
model
181(1)
tempdb
181(1)
pubs
181(1)
Northwind
182(1)
msdb
182(1)
Database Files
182(2)
Creating Databases
184(2)
Create Database Example
186(1)
Expanding and Shrinking Databases
186(3)
Automatic File Expansion
187(1)
Manual File Expansion
187(1)
Automatic File Shrinkage
187(1)
Manual File Shrinkage
187(2)
Changes in Log Size
189(4)
Database Filegroups
193(3)
FILEGROUP CREATION Example
195(1)
Altering a Database
196(2)
ALTER DATABASE Examples
197(1)
Databases Under the Hood
198(5)
Space Allocation
201(2)
Database Options
203(7)
Changing Database Options
209(1)
Other Database Considerations
210(2)
Database Doesn't Equal Schema
210(1)
Removable Media
210(1)
Compatibility Level
211(1)
Summary
212(1)
Tables
213(86)
Creating Tables
214(15)
Naming Tables and Columns
215(1)
Reserved Keywords
215(1)
Delimited Identifiers
216(2)
Naming Conventions
218(1)
Datatypes
219(6)
Much Ado About NULL
225(4)
Internal Storage---The Details
229(17)
Data Pages
231(2)
Examining Data Pages
233(3)
Structure of Data Rows
236(2)
Column Offset Array
238(1)
Storage of Fixed-Length and Variable-Length Rows
239(4)
Page Linkage
243(1)
Text and Image Data
244(2)
Indexes
246(4)
Clustered Indexes
247(1)
Nonclustered Indexes
247(1)
Structure of Index Pages
248(1)
Creating Indexes
248(2)
User-Defined Datatypes
250(1)
Indentity Property
251(4)
Constraints
255(37)
PRIMARY KEY and UNIQUE Constraints
255(6)
FOREIGN KEY Constraints
261(8)
Constraint Checking Solutions
269(2)
Restrictions on Dropping Tables
271(1)
Self-Referencing Tables
271(2)
Referential Actions
273(2)
CHECK Constraints
275(4)
Default Constraints
279(5)
More About Constraints
284(8)
Altering a Table
292(3)
Changing a Datatype
292(1)
Adding a New Column
293(1)
Adding, Dropping, Disabling, or Enabling a Constraint
294(1)
Dropping a Column
294(1)
Enabling or Disabling a Trigger
295(1)
Temporary Tables
295(3)
Private Temporary Tables (#)
296(1)
Global Temporary Tables (##)
296(1)
Direct Use of tempdb
297(1)
Constraints on Temporary Tables
297(1)
Summary
298(1)
Querying Data
299(92)
The SELECT Statement
299(3)
Joins
302(20)
Outer Joins
307(6)
The Obsolete *= OUTER JOIN Operator
313(7)
Cross Joins
320(2)
Dealing with NULL
322(10)
NULL in the Real World
325(4)
IS NULL and = NULL
329(3)
Subqueries
332(13)
Correlated Subqueries
337(8)
Views and Derived Tables
345(5)
Altering Views
349(1)
Other Search Expressions
350(39)
LIKE
350(7)
BETWEEN
357(1)
Aggregate Functions
357(7)
Datacube---Aggregate Variations
364(16)
TOP
380(3)
UNION
383(6)
Summary
389(2)
Modifying Data
391(52)
Basic Modification Operations
391(30)
INSERT
391(15)
UPDATE
406(3)
DELETE
409(2)
Modifying Data Through Views
411(10)
Data Modification Internals
421(20)
Inserting Rows
421(1)
Splitting Pages
422(4)
Deleting Rows
426(6)
Updating Rows
432(6)
Table-Level vs. Index-Level Data Modification
438(2)
Logging
440(1)
Locking
440(1)
Summary
441(2)
Programming with Transact-SQL
443(64)
Transact-SQL as a Programming Language
443(4)
Programming at Multiple Levels
445(2)
Transact-SQL Programming Constructs---The Basics
447(59)
Variables
447(4)
Control-of-Flow Tools
451(1)
CASE
452(4)
PRINT
456(2)
RAISERROR
458(2)
FORMATMESSAGE
460(1)
Operators
461(7)
Scalar Functions
468(38)
Summary
506(1)
Batches, Transactions, Stored Procedures, and Triggers
507(100)
Batches
507(5)
Transactions
512(21)
Explicit and Implicit Transactions
513(1)
Error Checking in Transactions
514(6)
Transaction Isolation Levels
520(12)
Additional Characteristics of Transactions
532(1)
Stored Procedures
533(15)
Nested Stored Procedures
535(1)
Recursion in Stored Procedures
536(5)
Nested Transaction Blocks
541(5)
Savepoints
546(1)
Stored Procedure Parameters
547(1)
Executing Batches, or What's Stored About a Stored Procedure?
548(27)
Step One: Parse Commands and Create the Sequence Tree
548(1)
Step Two: Compile the Batch
548(1)
Step Three: Execute
548(2)
Step Four: Recompile Execution Plans
550(2)
Storage of Stored Procedures
552(1)
Encrypting Stored Procedures
553(3)
Altering a Stored Procedure
556(1)
Temporary Stored Procedures
556(3)
System Stored Procedures and the Special sp_Prefix
559(2)
Autostart Stored Procedures
561(1)
System Stored Procedures
562(2)
Catalog Stored Procedures
564(1)
SQL Server Agent Stored Procedures
565(1)
Replication Stored Procedures
566(2)
Extended Stored Procedures
568(7)
Triggers
575(5)
Rolling Back a Trigger
578(2)
Debugging Stored Procedures and Triggers
580(4)
Execute (``any string'')
584(1)
Working with Text and Image Data
584(14)
WRITETEXT
586(3)
READTEXT
589(4)
UPDATETEXT
593(5)
Environmental Concerns
598(8)
Case Sensitivity
598(2)
Nullability and ANSI Compliance Settings
600(5)
Locale-Specific SET Options
605(1)
Summary
606(1)
Cursors
607(54)
Cursor Basics
608(2)
Cursors and ISAMs
610(5)
Problems with ISAM-Style Applications
614(1)
Cursor Models
615(6)
Transact-SQL Cursors
616(1)
API Server Cursors
616(1)
Client Cursors
617(2)
Default Result Sets
619(1)
API Server Cursors vs. Transact-SQL Cursors
619(2)
Appropriate Use of Cursors
621(11)
Row-by-Row Operations
621(1)
Query Operations
622(1)
Scrolling Applications
623(1)
Choosing a Cursor
624(1)
Cursor Membership, Scrolling, and Sensitivity to Change
625(7)
Working with Transact-SQL Cursors
632(20)
DECLARE
632(2)
OPEN
634(2)
FETCH
636(2)
UPDATE
638(1)
DELETE
638(1)
CLOSE
638(1)
DEALLOCATE
639(1)
Simplest Cursor Syntax
640(1)
Fully Scrollable Transact-SQL Cursors
640(3)
Concurrency Control with Transact-SQL Cursors
643(9)
Cursor Variables
652(8)
Obtaining Cursor Information
653(7)
Summary
660(1)
Transact-SQL Examples and Brainteasers
661(66)
Using Triggers to Implement Referential Actions
661(9)
Recursive Triggers
669(1)
Brainteasers
670(56)
Generating Test Data
671(5)
Getting Rankings
676(11)
Finding Differences Between Intervals
687(6)
Keeping Running Totals
693(1)
Sampling Every n Rows
694(1)
Finding Rows with Matching Columns
694(5)
Putting Data on a Web Page
699(1)
Expanding a Hierarchy
699(7)
Selecting Instead of Iterating
706(1)
Getting a Row Count of a Table
707(1)
Storing Computed Columns
708(1)
Using Pivot Tables (Cross-Tabs)
709(4)
Integrating SQL Server with E-Mail
713(6)
Copying Text to Sequenced varchar Columns
719(4)
Instantiating and Executing an Automation Object
723(3)
Summary
726(1)
Locking
727(32)
The Lock Manager
727(7)
The Lock Manager and Isolation Levels
728(1)
Spinlocks
729(1)
Deadlocks
729(5)
Locks and Memory
734(1)
Lock Types for User Data
734(14)
Lock Modes
735(3)
Lock Granularity
738(4)
Lock Duration
742(1)
Lock Ownership
742(1)
Viewing Locks
742(6)
Lock Compatibility
748(2)
Bound Connections
750(2)
Row-Level vs. Page-Level Locking
752(2)
Lock Escalation
753(1)
Locking Hints and Trace Flags
754(1)
Summary
755(4)
PART IV: PERFORMANCE AND TUNING
Optimizing Query Performance
759(90)
The Development Team
760(1)
Application and Database Desing
760(6)
Normalize Your Database
761(2)
Evaluate Your Critical Transactions
763(2)
Keep Table Row Lengths and Keys Compact
765(1)
Planning for Peak Usage
766(1)
Perceived Response Time for Interactive Systems
766(2)
Prototyping, Benchmarking, and Testing
768(4)
A Rant on Development Methodologies
771(1)
Creating Useful Indexes
772(8)
Choose the Clustered Index Carefully
774(1)
Make Nonclustered Indexes Highly Selective
775(1)
Tailor Indexes to Critical Transactions
776(2)
Pay Attention to Column Order
778(1)
Index Columns Used in Joins
778(1)
Create or Drop Indexes as Needed
779(1)
Using Stored Procedures and Caching Mechanisms
780(8)
Ad Hoc Caching
781(1)
Autoparameterization
782(1)
The sp_executesql Procedure
782(1)
The Prepare and Execute Method
783(1)
Sharing Cached Plans
783(1)
When to Use Stored Procedures and Other Caching Mechanisms
784(1)
Recompiling Stored Procedures
784(1)
Limiting the Number of Plans in Cache
785(1)
Other Benefits of Stored Procedures
786(2)
Concurrency and Consistency Tradeoffs
788(1)
Resolving Blocking Problems
789(5)
Indexes and Blocking
791(3)
Resolving Deadlock Problems
794(13)
Cycle Deadlock Example
794(1)
Conversion Deadlock Example
795(2)
Preventing Deadlocks
797(1)
Handling Deadlocks
797(1)
Volunteering to Be the Deadlock Victim
798(1)
Watching Locking Activity
799(1)
Identifying the Culprit
799(8)
Segregating OLTP and DSS Applications
807(1)
Optimizing Queries
807(28)
Query Analysis
809(2)
Index Selection
811(12)
Join Selection
823(5)
Other Processing Strategies
828(2)
Maintaining Statistics
830(3)
The Index Tuning Wizard
833(2)
Monitoring Query Performance
835(13)
STATISTICS IO
835(2)
STATISTICS TIME
837(1)
Showplan
838(2)
Using Query Hints
840(8)
Summary
848(1)
Configuration and Performance Monitoring
849(42)
Windows NT Configuration Settings
849(3)
Task Management
850(1)
Resource Allocation
850(1)
PAGEFILE.SYS Location
851(1)
File System Selection
851(1)
Nonessential Services
851(1)
Network Protocols
851(1)
SQL Server Configuration Settings
852(15)
Serverwide Options
852(12)
Database Options
864(1)
Buffer Manager Options
865(1)
Startup Parameters on SQLSERVR.EXE
866(1)
System Maintenance
867(1)
Monitoring System Behavior
868(22)
SQL Server Profiler
868(11)
Performance Monitor
879(11)
Other Performance Monitoring Considerations
890(1)
Summary
890(1)
Suggested Reading 891(6)
Index 897

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.