Synopses & Reviews
Never-Before-Published Insiders’ Information for Troubleshooting SQL Server 2005.
This is the definitive guide to troubleshooting the Microsoft SQL Server 2005 database engine, direct from the people who know it most intimately: the people who wrote it, designed it, and support it. SQL Server expert Ken Henderson, author of the best-selling Guru’s Guides to SQL Server, has assembled a “dream team” of SQL Server developers and support engineers to provide in-depth troubleshooting and diagnostic information that has never been documented before: information that would be impossible to get without access to Microsoft’s own source code.
From caching to clustering, query processing to Service Broker, this book will help you address even the toughest problems with database engine operations. Each chapter begins with a brief architectural overview of a key SQL Server component, then drills down into the most common problems users encounter, offering specific guidance on investigating and resolving them. You’ll find comprehensive, in-depth chapters on
• Waiting and blocking
• Data corruption and recovery
• Procedure cache issues
• Query processing
• Server crashes and other critical failures
• Service Broker
• SQLOS and scheduling
This is the indispensable resource for everyone who must keep SQL Server running smoothly: DBAs, database application developers, API programmers, and Web developers alike.
About the Authors ix
1 Waiting and Blocking Issues 1
2 Data Corruption and Recovery Issues 47
3 Memory Issues 137
4 Procedure Cache Issues 183
5 Query Processor Issues 225
6 Server Crashes and Other Critical Failures 273
7 Service Broker Issues 331
8 SQLOS and Scheduling Issues 369
9 Tempdb Issues 411
10 Clustering Issues 425
The Aging Champion 441
About the Author
The authoring team is a mix of developers from the SQL Server development team and support professionals from Microsoft’s Customer Support Services organization. Seven developers from the SQL Server development team and three support professionals from Microsoft CSS contributed to this book.
SQL Server Development Team
August Hill has been a developer for more than 30 years. For the past six years he has been a member of the SQL Server Service Broker team. He’s made a number of contributions to the product in the area of supportability. When he’s not developing software he can be found playing guitar or tasting Washington wines. He can be reached at [email protected]
Cesar Galindo-Legaria is the manager of the Query Optimizer group in SQL Server. He received a Ph.D. in computer science (databases) from Harvard University in 1992. After working for a graphics company in the Boston area, he went back to databases, doing post-doctoral visits in European research centers. In 1995 he joined Microsoft to work on a new relational query processor, first shipped with SQL Server 7.0, which introduced a fully cost-based query optimizer, a rich set of execution algorithms, and a number of auto-administration features. He has been working on query processing for SQL Server ever since. He holds several patents on query processing and optimization, and has published a number of research papers in that area.
Ken Henderson has been a developer for more than 25 years. He has worked with SQL Server since 1990 and has built software for a number of firms throughout his career, including H&R Block, the Central Intelligence Agency, the U.S. Navy, the U.S. Air Force, Borland International, JP Morgan, and various others. He joined Microsoft in 2001 and is currently a developer in the Manageability Platform group within the SQL Server development team. He is the creator of SQL Server 2005’s SQLDiag facility and spends his days working on SQL Server management tools and related technologies. He is the author of eight books on a variety of computing topics, including the popular Guru’s Guide series of SQL Server books available from Addison-Wesley. He lives with his family in the Dallas area and may be reached via email at [email protected]
Sameer Tejani, originally from Arusha, Tanzania, has spent the past 10 years working at Microsoft in the SQL Server group. His work has exposed him to different areas of the SQL Server Engine, including the T-SQL execution framework, Open Data Services (ODS), connection management, User Mode Scheduler (UMS), and other areas. He is solely responsible for the infamous “non-yielding scheduler” error messages that support professionals have come to abhor! He is currently a software development lead in the SQL Server Security team. In his spare time, Sameer enjoys being outdoors and going on long bike rides. He lives with his wife Farhat in the Seattle area.
Santeri Voutilainen, better known as Santtu, has been a software design engineer in SQL Server storage engine team since 1999. He has worked closely on page allocation, latches, and the lock manager. A graduate of Harvard University, he is in the final stages of a master’s degree in computer science from the University of Washington. Although he calls Seattle home, Santeri was born in Finland and spent most of his young life in Nepal. He is an avid traveler and outdoorsman and spends his free time exploring the Pacific Northwest with his wife and one-year-old son. Santtu can be reached at [email protected]
Slava Oks is a software architect for the Storage Engine and Infrastructure team in SQL Server. He has been with Microsoft for more than nine years. During the SQL Server 2005 development, project he worked on architecture and implementation of SQLOS. He’s made a number of contributions to the product in the area of performance, scalability, supportability, and testability. He is also the author of a popular SQL Server’s blog located at blogs.msdn.com/slavao. When he’s not developing software he can be found playing sports or having fun with friends and family.
Wei Xiao worked on the design of the SQL Server Storage Engine in Microsoft from 1996 to April 2006. His main areas of focus are access methods, concurrency control, space management, logging, and recovery. He also worked on SQL Server performance monitoring and troubleshooting. He has spoken at several industry conferences, including Microsoft Tech Ed and SQL PASS. He is currently working on a Microsoft internal data storage project.
Microsoft Customer Support Services
Bart Duncan has worked with SQL Server and related technologies for about 10 years. He is currently an escalation engineer in the SQL Server product support group. Bart lives in Dallas, Texas, where he is fortunate to share a home with his wonderful wife, Dr. Andrea Freeman Duncan.
Bob Ward is a senior escalation engineer in Microsoft Customer Service and Support (CSS) based in the Microsoft Regional Support Center in Irving, Texas. He has worked with Microsoft for 13 years and has now supported every release of Microsoft SQL Server from 1.1 for OS/2 to SQL Server 2005. His background in the computer industry spans 20 years and includes database development projects with companies like General Dynamics, Harris Hospital, and American Airlines. Bob graduated with a bachelor’s degree in computer science from Baylor University in 1986. He currently lives in North Richland Hills, Texas, with his wife Ginger and two sons, Troy and Ryan. Bob spends his spare time coaching youth sports, cheering for the local professional sports teams, and sharpening his golf game for a dream of playing on the PGA Legends Tour.
Cindy Gross has been a member of the Texas Microsoft PSS support team for SQL Server and Analysis Services since 2000. Cindy has taken on many roles during this time, including support engineer, content lead, and Yukon readiness lead. Before joining Microsoft, Cindy was a SQL Server DBA for seven years, working on SQL Server versions 1.11 and later. She is an avid reader of science fiction and fantasy, with a special love for books starring women as fighters. Her favorite non-technical author is Sheri S. Tepper. Cindy spends many weekends racing her dirt bike–currently a 2004 Honda CRF250X. You may contact Cindy from her website http://cindygross.spaces.live.com/.
Table of Contents
Chapter 1 Waiting and Blocking Issues
Chapter 2 Data Corruption and Recovery Issues
Chapter 3 Memory Issues
Chapter 4 Procedure Cache Issues
Chapter 5 Query Processor Issues
Chapter 6 Server Crashes and Other Critical Failures
Chapter 7 Service Broker Issues
Chapter 8 SQLOS and Scheduling Issues
Chapter 9 Tempdb Issues
Chapter 10 Clustering Issues