- Veröffentlicht auf Amazon.com
I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.
Indexes are a primary means of making performance improvements on SQL Server. This book aims to tell you all you need to know about indexes, and more importantly, provides a methodological approach to index tuning, turning what is often viewed as an art into a science.
Indexes are typically a dry subject matter, however they are fundamental to both understanding the structure of data and helping improve query performance. The examples provided make the subject interesting and accessible.
Before reading the book, I had a list of questions that I hoped would be covered, this would let me know how detailed the book was. It successfully answered most of my questions - showing me the book had both depth and quality. These questions included:
*Will it use practical examples to illustrate a point?
*Does it mention the plan cache as an input to the DTA?
*Does it identify the limit in the number of missing indexes?
*Will it tell me how to fix a corrupt index?
*Will it provide scripts to automatically optimize my databases?
I did wonder why anyone would want to write a book solely about indexes. After all, if you wanted to know about a given make of car, would you buy a book that's only about the car's engine? The answer I think, from a performance perspective, is yes.
Below is a chapter-by-chapter exploration of the topics covered, I've given each chapter its own rating.
Chapter 1 Index fundamentals
The chapter provides a comprehensive overview of what indexes are, the different types, and why they are important. The types of index discussed include heaps (sic), clustered, non-clustered, columnstore, xml, spatial, and full-text search. Also covered are primary keys, unique indexes, included columns, partitioned indexes, filtered indexes, and compression.
The various options used for creating an index are covered in good detail. These options include fillfactor, pad_index, sort_in_tempdb, ignore_dup_key, statisitics_norecompute, drop_existing, online, allow_row_locks, allow_page_locks, maxdop, data_compression, on partitions.
A brief overview of the system tables that contain index metadata is provided, including sys.indexes, sys.index_columns, sys.xml_indexes, sys.spatial_indexes, sys.column_store_dictionaries, and sys.column_store_segments.
Throughout the chapter there is an analogy made between indexes and books within a library. For example, the primary catalogue (e.g. book title) being equated with a clustered index, and a secondary catalogue (e.g. author name) with a non-clustered index. This is extended with the example of a large dictionary, where every letter has its own book, to reflect partitioning. Finally microfiche is used to reflect compression. (5/5)
This book probably covers everything you would want to know about indexes, it has great depth and range, is full of relevant examples, and has a methodological approach to performance tuning using indexes. The book is an excellent resource and will be useful to anyone looking to improve the performance of their SQL Server databases.