SQL Antipatterns: Avoiding the Pitfalls of Database Programming reads a heck of a lot like it sounds it would. This book is full of good examples of bSQL Antipatterns: Avoiding the Pitfalls of Database Programming reads a heck of a lot like it sounds it would. This book is full of good examples of bad practices (including some that SEEM like they would help you out) and ways that you can avoid them. As a few examples, multi-valued columns, multi-column attributes, too many indexes, replacing null values with a different known value, etc.
I'd say that this book is best read by a junior / mid-level DBA or developer as it will provide a lot of good information on things to avoid, and why it is that you want to avoid them. The chapters are very cohesive and are easy to consume in a single sitting. As a matter of fact, I sat down and read about 5 chapters at a time (As opposed to some books that would take me five sessions to read one chapter). ...more
I started Data Quality: The Field Guide after seeing it mentioned in a few other texts which I have read on the subject of Data Quality. I have becomeI started Data Quality: The Field Guide after seeing it mentioned in a few other texts which I have read on the subject of Data Quality. I have become more and more interested in this subject over the past few years and was hoping to find another great book that I could learn from and potentially share as an introduction level text to others who might also be interested in this area. Data Quality: The Field Guide attempts to reach out in quick hit chapters and focus in on and explain a single topic. Although the single topic per chapter sounds like a good way of working through the various topics, there seems to be something lacking. It is as if each topic is discussed at a bit to high of a level and in to generic of terms to find actionable items to follow. The background information is good, and there were a lot of really good points and useful explanations, but the information might not be enough in and of itself to allow the user to put together a plan for identifying and enacting improvements in data quality. Perhaps the text hasn't aged particularly well (it was written in 2000), or perhaps I was expecting something other than what was delivered, either way I don't know that this is the right introductory book for someone looking to break into the subject....more
I only got about a third of the way through the book. It was, in my opinion, not very well put together. I may eventually go back to looking at it. HoI only got about a third of the way through the book. It was, in my opinion, not very well put together. I may eventually go back to looking at it. However, with helpful hints like ... whenever we don't know where something is in the UI we just go to the XML and add the properties we want ... I just couldn't take the book too seriously. I know that the authors knew the engine VERY well, but it seems like they are not used to using the tools as the normal developer would use them. All in all, I will be looking for another book to use for reference for SSAS....more
For me, this was a good book to reinforce what I knew, as well as to try to pick up some key insights that might have escaped me. It covered the majorFor me, this was a good book to reinforce what I knew, as well as to try to pick up some key insights that might have escaped me. It covered the majority of database design concepts which I have picked up over the last few years of practical experience in one volume. I would recommend this as a really good place to start out if you are just learning to deal with database design, or if you are starting out with system application design and need to understand how it integrates with the underlying databases....more
SQL Server 2008 Query Performance Tuning Distilled approaches the task of maintaining and tuning an SQL Server in a methodical fashion. The book mightSQL Server 2008 Query Performance Tuning Distilled approaches the task of maintaining and tuning an SQL Server in a methodical fashion. The book might take a little while to get through, but it isn't that it is a hard read, it is just that there is a lot of information. The book will best be read by a DBA who has at least some working knowledge of how to interact with the SQL Server (i.e. this might not be the best book for a true beginner).
The following is a quick overview of what the book has to offer:
Chapter 01 - SQL Query Performance Tuning A general overview of the iterative performance tuning methodology. Also gives a description of the coming chapters and the information to which each will delve.
Chapter 02 - System Performance Analysis In my mind, the best chapter in the book. This gives us a comprehensive guide for using the Perfmon tool as well as the system DMVs to understand how your system is performing.
Chapter 03 - SQL Query Performance Analysis A quick look at profiler traces, execution plans and some of the statistics options.
Chapter 04 - Index Analysis This chapter presents a fairly thorough look at SQL Server indexes, their benefits, their costs and how you can use them effectively.
Chapter 05 - Database Engine Tuning Advisor A short chapter dedicated to using the Database Engine Tuning Advisor (DTA or DETA).
Chapter 06 - Bookmark Lookup Analysis Another fairly short chapter discussing the Bookmark Lookup Operation, and ways in which they can be avoided.
Chapter 07 - Statistics Analysis Discusses how SQL Server keeps track of statistics, how they are used, and the few options you have to keeping up with them.
Chapter 08 - Fragmentation Analysis A look at index fragmentation, what causes it, some options of dealing with it and how you can maintain objects affected by it.
Chapter 09 - Execution Plan Cache Analysis This chapter investigates the Execution Plan Cache, the costs associated with storing the plans in the cache, and some tips on how you can make the cache reusable. This chapter may have me rethinking how we currently execute the majority of our database loads.
Chapter 10 - Stored Procedure Recompilations This chapter investigates the intentional and unintentional ways for recompiling stored procedures, the costs associated with these recompilations and tips on how to avoid the same.
Chapter 11 - Query Design Analysis This chapter has a few general tips and tricks for working with query design.
Chapter 12 - Blocking Analysis This chapter goes into the details for the SQL Engines locking mechanism, the isolation settings, the effects of each and how they can effect blocking within the database engine.
Chapter 13 - Deadlock Analysis A short chapter on deadlocks, some quick tips for how you might avoid them, and information on how you can capture information that will enable you to triage the errors after they occur.
Chapter 14 - Cursor Cost Analysis A chapter on the different types of cursors, the various pros and cons of each and some tips for defining them to be as efficient as possible. As always, lots of warnings on avoiding them entirely if at all possible.
Chapter 15 - Database Workload Optimization A chapter on the iterative nature of capturing the overall workload of a server, analyzing it for problem queries, and then iteratively tuning them. This seems like the "Bringing it all together" type of chapter and does a good job of showing where each topic you have learned about will come in handy for helping to improve the overall health of the system.
Chapter 16 - SQL Server Optimization Checklist This is almost like a summary chapter, in the guise of a quick checklist. It reviews the rest of the larger subjects which the book has covered as a reminder that you can quickly flip through.
This book was an easy read on a subject that can be relatively intimidating for a developer with no experience in the area. It is a great introductionThis book was an easy read on a subject that can be relatively intimidating for a developer with no experience in the area. It is a great introduction to learning how to read SQL Server Execution Plans. There are lots of good examples and screen shots describing how the server is interpreting the commands being executed.
However, one should note that the book is NOT about how the plans will help you to improve your queries. Instead, knowing how to read through the various execution plans will help the reader to understand where problems might exist....more
This book took me a good six weeks to finish as it had so much information to consume that I would often find myself reading for ten or twenty pages aThis book took me a good six weeks to finish as it had so much information to consume that I would often find myself reading for ten or twenty pages and then having to take a break. However, I feel like reading it cover to cover once, in combination with some of the MCM Prep videos, has given me a very strong foundation of how the engine works. I'm sure that I will continue to look back at some of the chapters over the next several years as I come upon problems with T-SQL.
This book is highly recommended, although not for the faint of heart, and definitely not an entry level text....more
I used this to get through the Database Development Certification in July. I certainly wouldn't say that it is all that you need to pass, but it coverI used this to get through the Database Development Certification in July. I certainly wouldn't say that it is all that you need to pass, but it covers the majority of the information. The questions on the practice test helped to narrow down areas which I needed to focus on more, which helped out immensely.
Of note was the fact that there were a few errors in the practice questions that I saw. However, it was obvious what they were and what the intent of the question was, particularly when reading through the explanations. ...more