Cover image for SQL server 2005 practical troubleshooting : the database engine
Title:
SQL server 2005 practical troubleshooting : the database engine
Series:
Microsoft SQL server 2005
Publication Information:
Boston, MA : Pearson Education, 2007
Physical Description:
1v + 1 CD-ROM
ISBN:
9780321447746
General Note:
Accompanied by compact disc : CP 11074
Added Author:

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010134559 QA76.9.C55 S645 2007 Open Access Book Book
Searching...

On Order

Summary

Summary

Never-Before-Published Insiders' Information for Troubleshooting SQL Server 2005.

nbsp;

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.

nbsp;

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

nbsp;

* Waiting and blocking

* Data corruption and recovery

* Memory

* Procedure cache issues

* Query processing

* Server crashes and other critical failures

* Service Broker

* SQLOS and scheduling

* tempdb

* Clustering

nbsp;

This is the indispensable resource for everyone who must keep SQL Server running smoothly: DBAs, database application developers, API programmers, and Web developers alike.

nbsp;

nbsp;

Contents

About the Authors nbsp;nbsp;nbsp;nbsp;nbsp;ix

Preface nbsp;nbsp;nbsp;nbsp;nbsp;xii

Acknowledgments nbsp;nbsp;nbsp;nbsp;nbsp;xiv

1nbsp; nbsp;Waiting and Blocking Issues nbsp;nbsp;nbsp;nbsp;nbsp;1

2nbsp; nbsp;Data Corruption and Recovery Issues nbsp;nbsp;nbsp;nbsp;nbsp;47

3nbsp; nbsp;nbsp;Memory Issues nbsp;nbsp;nbsp;nbsp;nbsp;137

4nbsp; nbsp;Procedure Cache Issues nbsp;nbsp;nbsp;nbsp;nbsp;183

5nbsp; nbsp;Query Processor Issues nbsp;nbsp;nbsp;nbsp;nbsp;225

6nbsp; nbsp;Server Crashes and Other Critical Failures nbsp;nbsp;nbsp;nbsp;nbsp;273

7nbsp; nbsp;Service Broker Issues nbsp;nbsp;nbsp;nbsp;nbsp;331

8nbsp; nbsp;SQLOS and Scheduling Issues nbsp;nbsp;nbsp;nbsp;nbsp;369

9nbsp; nbsp;Tempdb Issues nbsp;nbsp;nbsp;nbsp;nbsp;411

10 nbsp;nbsp;Clustering Issues nbsp;nbsp;nbsp;nbsp;nbsp;425

The Aging Champion nbsp;nbsp;nbsp;nbsp;nbsp;441

Index nbsp;nbsp;nbsp;nbsp;nbsp;445


Author Notes

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 august.hill@microsoft.com.

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 khen@khen.com.

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 sqlsanttu@vode.net.

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/ .


Excerpts

Excerpts

Preface I originally conceived this book as a means of getting Microsoft support engineers to write down the many things they had learned from supporting SQL Server over the years. When I joined Microsoft, I was surprised to learn that much of the practical knowledge related to supporting the product (what those in epistemology refer to as "domain knowledge") that had been acquired by the support people was not written down anywhere. It was often communicated verbally and passed down from person to person via oral traditions. This, of course, led to people not knowing how to do their jobs unless someone was kind enough to show them the way. It was also extremely error prone. And it led to some of the most important knowledge about supporting the product being concentrated among just a handful of individuals--which worked out nicely for them, but not so well for the rest of the support group. I had been a fulltime software developer for over twenty years before joining Microsoft. Much to my surprise, I discovered that the upper ranks of the support organization consisted mostly of people who had at one time been developers themselves. Often, they had something in the neighborhood of three to five years of experience as developers before becoming support engineers. As a career developer, it was difficult for me to imagine finding support work truly fulfilling on a long-term basis. Support work, it seemed to me, was something akin to the janitor's job of the software development world. Someone had to clean up after all those messy developers, and that task often fell to the support staff. Although I knew it was important work, I could not personally envision being really happy pursuing support work as a career. Nevertheless, here were several former developers who evidently were. This mystified me. I began to think about how to level the playing field and make the knowledge possessed by the upper echelon of the support group available to everyone. It seemed to me that the deep understanding of how to support the product, the domain knowledge so prized by the folks on Mount Olympus, should be available to everyone in the organization. Everyone who supported the product should have equal access to it. My initial thought was that I would document how to troubleshoot the product in the book I was working on at the time, The Guru's Guide to SQL Server Architecture and Internals. However, it soon became evident to me that developing software or understanding it from a developer's perspective differs substantially from troubleshooting it. They are really two different disciplines. Although some overlap certainly exists, there is enough that is specific to troubleshooting the product that it warrants exploration and coverage of its own. When I finally finished my architecture book, I returned to this idea of somehow documenting the many low-level details and insights the support group had learned from years of troubleshooting the product--details not so much about how the product worked, but about how to solve tough problems relating to it. I began to discuss the idea with some of the support engineers to gauge their interest in it. I suggested that we do a multi-author project wherein they could codify their hard-won troubleshooting knowledge in print--not only for their fellow support engineers, but also for their customers. Many had never been published before, and I felt that potentially seeing their words in print might motivate some of them to finally put down in writing what had thus far only been divulged to a select few within the company. Responses ranged from tepid to enthusiastic, depending on the support engineer. After running down the roster of who was and was not interested in working on the project, it became obvious that I needed more authors to round out the book. There simply were not enough in the support organization who were willing and able to join the project. I could have gone outside the support group to Microsoft Consulting Services or completely outside the company to MVPs and the like, but I really wanted to limit the author corps to those who had seen the SQL Server source code. There is no substitute for having access to the source code and being able to step through it under a debugger. By studying the product's source, you can come to understand the SQL Server technology at a depth and to a degree that would otherwise be impossible. So, still in need of additional authors, I decided to extend an invitation to some of the top developers on the product team. Although completely distinct from the support group within Microsoft and focused on developing products, not supporting them, I knew many of these people personally and knew that they had spent a fair amount of their time debugging and troubleshooting complex problems with the product, particularly the parts they had built. You cannot write complex code without having to debug it occasionally, and I felt confident that they would augment the book's coverage of practical troubleshooting in novel and interesting ways. The response from my colleagues in the product group was roundly enthusiastic, and several of the top developers from the SQL Server team agreed to join the project. I was able to enlist the talents of the very people who wrote the code to talk about how to troubleshoot both complex and commonplace problems with it. You will not find this in any other book, and I am excited to have been a part of making it available to you. My architecture book tells you how SQL Server works. This book tells you what to do when something goes wrong with it. The former is generally applicable, regardless of what you might be doing with the server. The latter is, hopefully, an edge case (because the product does not break that often), but is something that can make the difference between a SQL Server application meeting customer needs and it going down in flames. Hopefully, you won't have problems with SQL Server. If you do, this book is a good place to begin your troubleshooting expedition. My thanks go out to my fellow developers on the SQL Server product team who wrote portions of this book: August Hill, Cesar Galindo-Legaria, Sameer Tejani, Santeri (Santtu) Voutilainen, Slava Oks, and Wei Xiao. I also want to thank the support engineers who lent their voices to the project: Bart Duncan, Bob Ward, and Cindy Gross. These people all have their own unique ways of thinking (and writing!), but you could not ask for a better cast of characters to accompany you as you tackle the practicalities of SQL Server 2005 troubleshooting. Ken Henderson August 21, 2006 (c) Copyright Pearson Education. All rights reserved. Excerpted from SQL Server 2005 Practical Troubleshooting: The Database Engine by Ken Henderson All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.