Part 1 - Tables and Indexes
Chapter 1: Data storage internals
Chapter 2: Tables and Indexes - Internal Structure and Access Methods
Chapter 3: Statistics
Chapter 4: Special Indexing and Storage Features
Chapter 5: Index fragmentation
Chapter 6: Designing and tuning the indexes
Part 2: Other things that matter
Chapter 7: Constraints
Chapter 8: Triggers
Chapter 9: Views
Chapter 10: Functions
Chapter 11: XML
Chapter 12: Temporary Tables
Chapter 13: CLR
Chapter 14: CLR types
Chapter 15: Data partitioning
Chapter 16: System design considerations
Part 3: Locking, Blocking and Concurrency
Chapter 17: Lock types
Chapter 18: Troubleshooting Blocking issues
Chapter 19: Deadlocks
Chapter 20: Lock Escalations
Chapter 21: Optimistic isolation levels
Chapter 22: Application locks
Chapter 23: Schema locks
Chapter 24: Designing transaction strategies
Part 4: Query Life Cycle
Chapter 25: Query Optimization and Execution
Chapter 26: Plan Caching
Part 5: Practical Troubleshooting
Chapter 27: System Troubleshooting
Chapter 28: Extended events
Part 6: Inside the transaction log
Chapter 29: Transaction Log Internals
Chapter 30: Designing a Backup Strategy
Chapter 31: Designing aHigh Availability Strategy
Part 7: In-Memory OLTP Engine
Chapter 32: Hekaton (In Memory OLTP Engine)
Part 8: Columnstore Indexes
Chapter 33: In-Memory OLTP Programmability
Chapter 34: Introduction to Columnstore indexes
Chapter 35: Clustered Columnstore indexes