SQLAuthority Book Review – Professional SQL Server 2008 Internals and Troubleshooting

Professional SQL Server 2008 Internals and Troubleshooting
by Christian Bolton, Justin Langford, Brent Ozar, James Rowland-Jones, Steven Wort

Link to Amazon (Worldwide)
Link to Flipkart (India)

Brief Review: Having a book on internal and associating that with real life is “almost” an impossible task. The reason for using the word “almost” is because this book has accomplished this very well. This internals book is written by keeping real life scenarios as top focus. The highlight of the book is that it teaches how to use internals to troubleshoot the real life issues of performance, storage, query processing and all the other important aspects of SQL Server – A must-have book for everybody who is a hands-on DBA/Developer.

Detail Review: I planned to finish reading this book within a week. Very soon, I realized that I was going over very interesting subjects of SQL Server very quickly and understanding them very well. In fact, I finished reading this book in less than a week, and I have to accept that it offers an interesting journey for its readers. This book is also quite easy to read. This book has addressed some of the complex subjects in such a simple manner that any SQL user can understand it very easily.

The three very important components for any server are CPU, Memory and IO. This book effectively elucidates these three components. The topics usually begin by covering internals which shift to practical implementations after proper amount of internals. In other way, I can say that this book is NOT a usual boring book, which can put you to sleep. Each chapter keeps you interested till the end of it. CPU and IO, which are very important deciding factors for Query cost, are very well explained in the book. This book explains how any query can be understood in terms of internals. After explaining the query internals in terms of CPU and IO, it also explains how the physical memory affects query execution and what are the techniques to improve performance?

This book gives an in-depth explanation of Wait Types and Extended Events. I must admit that I was quite scared of Wait Types and Extended Events thus far and learned how “friendly” they can be after reading this book. In fact, I can really see that how I can use these concepts in my real life scenarios and help my servers to run better and efficiently. This book also covers some topics which do not have much available help online, i.e. SQLDiag, RML Utilities, etc. One who is new to these subjects can easily learn from the basics and soon can move to an advanced level. Again, as mentioned earlier, this book is written by taking the real world into consideration and all these subjects follow the same goal.

In fact, I liked the entire book. However, the chapters which I really enjoyed the most are Chapter 3: SQL Server Waits and Extended Events by Jonathan Kehayias; Chapter 4: Working with Storage by Brent Ozar; and Chapter 5: CPU and Query Processing by Steven Wort. Each chapter is independent of the other chapters; this way, the reader can practically start reading any chapter from anywhere and explore the book according to his/her convenience.

Databases are required because there is a large amount of data available, and keeping the data safe, secure and available is the MOST important task of any database system. The fourth chapter on Storage by Brent covers this important basic concept very thoroughly. The most impressive part of Chapter 4 is that it explains how storage works in real time. While taking about storage, Brent manages to effectively explain the concepts of High Availability and Disaster Recovery as well. Maintenance of storage has always been a challenge, and also there has been a lack of understanding on storage devices and techniques available. This chapter answers few very basic but important questions like when should SAN be used for data storage, and what is its effect on performance? This chapter also explains RAID setup; however, please note that it focuses on “practical internals.” After setting up good storage, it is equally important to test it; this chapter continues discussing different tools and methodologies for testing storage. This chapter also covers Windows Server Configuration as well as tuning of software by means of storage devices. Corruption can be significant problem in case of a large database; this chapter also covers the proper usage of DBCC CHECKDB and its best practices.

There is no doubt that this book is written by experts who have extensive experience in the subject, which is covered in different chapters. Solid and thorough content, plenty of code, easy-to-understand diagrams, lots of tips along with each topic and simple language are the key highlights of this book.

Rating: 5 Stars

Summary: There is no doubt that this book is by far one of the best books available for anybody who is interested in SQL Server Internals and applying its knowledge to real world troubleshooting scenarios. I think this is one of the must-have books for understanding SQL Server, and believe me, you will find yourself flipping the pages of the book when you are facing a trouble with the SQL Server instead of using search engine!

Reference : Pinal Dave (http://blog.SQLAuthority.com)

8 thoughts on “SQLAuthority Book Review – Professional SQL Server 2008 Internals and Troubleshooting

  1. I want To Display Top 1 record From Member Wise

    MemberId Details Date
    2 3369.56-0 03/04/2010
    2 0.00-1001 NULL
    2 0.00-30 NULL
    2 0.00-45 NULL
    2 0.00-60 NULL
    4 2300.00-1001 03/08/2010
    4 2577.95-0 12/16/2009
    4 0.00-45 NULL
    4 2559.91-30 NULL
    4 731.43-60 NULL
    14 0.00-1001 NULL
    14 0.00-30 NULL
    14 0.00-45 NULL
    14 0.00-60 NULL

    Kindly give me a solution

    Like

  2. I want To Display Top 1 record From Member Wise

    MemberId Details Date
    2 3369.56-0 03/04/2010
    2 0.00-1001 NULL
    2 0.00-30 NULL
    2 0.00-45 NULL
    2 0.00-60 NULL
    4 2300.00-1001 03/08/2010
    4 2577.95-0 12/16/2009
    4 0.00-45 NULL
    4 2559.91-30 NULL
    4 731.43-60 NULL
    14 0.00-1001 NULL
    14 0.00-30 NULL
    14 0.00-45 NULL
    14 0.00-60 NULL

    Kindly give me a solution

    Like

  3. Thank You Ramdas

    I Got The Output By

    With Cte As(Select MemberId,Details,Date,Row_Number() Over(Partition By MemberId Order By MemberId) Rn From TableName
    )
    Select * From Cte Where Rn=1

    Thanks & Regards
    Chandrakant Singh

    Like

  4. Pingback: SQL SERVER – Introduction to Extended Events – Finding Long Running Queries Journey to SQL Authority with Pinal Dave

  5. Pingback: Why I Pimp Our Book | Brent Ozar - Too Much Information

  6. You will have basically made some extremely good points right here. I specifically value the way in which you’ve been ready to stick so much thought right into a fairly short publish (comparitively) which results in it an thoughtful publish in your topic.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s