New live online training class in March: Columnstore Indexes

Posted on: November 14, 2018 1:21 pm

New live online training class in October: Fixing Slow Queries, Inefficient Code, and Caching/Statistics Problems

Posted on: September 18, 2018 4:39 am

New live online training class in October: Transactions, Locking, Blocking, Isolation, and Versioning

Posted on: September 11, 2018 4:31 am

What is the FCB_REPLICA_SYNC spinlock?

Posted on: June 28, 2018 10:40 am

New live online training class in October: Fixing Slow Queries, Inefficient Code, and Caching/Statistics Problems

Posted on: June 11, 2018 9:19 am

New live online training class in October: Transactions, Locking, Blocking, Isolation, and Versioning

Posted on: June 11, 2018 9:19 am

SQLskills SQL101: Why do some wait types need to be ignored?

Posted on: May 23, 2018 3:50 pm

New Pluralsight course: Analyzing Query Performance for Developers

Posted on: October 4, 2017 5:14 am

New Pluralsight course: Indexing for Performance

Posted on: September 18, 2017 11:26 am

Increased SOS_SCHEDULER_YIELD waits on virtual machines

Posted on: June 6, 2017 8:58 am

Waits library now has infographics from SentryOne monitored instances

Posted on: May 10, 2017 8:56 am

Who is overriding MAXDOP 1 on the instance?

Posted on: February 15, 2017 4:55 pm

Investigating the proportional fill algorithm

Posted on: October 4, 2016 4:58 am

Capturing spinlock statistics for a period of time

Posted on: October 4, 2016 4:16 am

Announcing the comprehensive SQL Server Wait Types and Latch Classes Library

Posted on: May 9, 2016 7:50 am

Updated sys.dm_os_waiting_tasks script to add query DOP

Posted on: May 3, 2016 8:34 am

SQL Server health check by SQLskills: Spring discount offer

Posted on: April 27, 2016 11:04 am

On index key size, index depth, and performance

Posted on: October 23, 2015 1:29 pm

New course: Index Fragmentation Internals, Analysis, and Solutions

Posted on: June 5, 2015 9:11 am

New course: part 2 of Kimberly’s Optimizing Stored Procedure Performance

Posted on: May 21, 2015 9:13 am

Identifying queries with SOS_SCHEDULER_YIELD waits

Posted on: May 7, 2015 9:08 am

Updated sys.dm_os_waiting_tasks script

Posted on: January 5, 2015 11:12 am

Problems from having lots of server memory

Posted on: December 9, 2014 10:15 pm

Delayed Durability in SQL Server 2014

Posted on: November 20, 2014 11:13 am

Capturing IO latencies for a period of time

Posted on: November 12, 2014 2:46 pm

Capturing wait statistics for a period of time

Posted on: November 12, 2014 12:19 pm

New SQLskills Pluralsight courses

Posted on: September 10, 2014 7:52 pm

Revamped IE1 and IE2 classes open for registration in October

Posted on: June 17, 2014 6:01 pm

Most common wait stats over 24 hours and changes since 2010

Posted on: May 15, 2014 10:22 am

Causes of IO_COMPLETION and WRITE_COMPLETION SQL Server wait types

Posted on: May 6, 2014 12:09 pm

A cause of high-duration ASYNC_IO_COMPLETION waits

Posted on: March 19, 2014 9:40 pm

How to determine what causes a particular wait type

Posted on: March 18, 2014 6:55 pm

What is the most worrying cause of log growth (log_reuse_wait_desc)?

Posted on: March 17, 2014 7:58 pm

What is the most worrying wait type?

Posted on: February 27, 2014 9:52 am

New course on Optimizing Ad Hoc Statement Performance

Posted on: December 7, 2013 9:16 pm

Are I/O latencies killing your performance?

Posted on: November 14, 2013 9:02 am

New online course: Why Physical Database Design Matters

Posted on: September 27, 2013 2:43 pm

The Accidental DBA (Day 27 of 30): Troubleshooting: Tempdb Contention

Posted on: June 27, 2013 8:00 am

DBCC CHECKDB scalability and performance benchmarking on SSDs

Posted on: April 3, 2013 11:34 am

DBCC CHECKDB performance and computed-column indexes

Posted on: March 25, 2013 1:46 pm

Make life easier on yourself, get a baseline!

Posted on: November 28, 2012 9:31 am

Survey: do you have a baseline?

Posted on: October 16, 2012 8:38 am

Most common latch classes and what they mean

Posted on: August 21, 2012 12:24 pm

Understanding data vs log usage for spills in tempdb

Posted on: May 11, 2012 2:08 am

Survey: most prevalent latch waits (code to run)

Posted on: May 10, 2012 2:26 am

Cool free tool to parse and analyze SQLIO results

Posted on: May 2, 2012 2:23 pm

Max server memory configuration survey results

Posted on: April 18, 2012 1:56 pm

Code to list potential cluster key space savings per table

Posted on: February 6, 2012 1:20 pm

How cluster key size can lead to GBs of wasted space

Posted on: January 2, 2012 6:46 am

Survey: wasted space from cluster keys (code to run)

Posted on: November 8, 2011 2:49 pm

Code to list index counts per table

Posted on: November 2, 2011 11:20 am

Over and under indexing – how bad is it out there?

Posted on: November 1, 2011 1:15 pm

Page Life Expectancy isn’t what you think…

Posted on: October 19, 2011 11:04 am

Capturing wait stats for a single operation

Posted on: July 11, 2011 9:00 am

New whitepapers on latches and spinlocks published

Posted on: July 1, 2011 8:13 am

MAXDOP configuration survey results

Posted on: June 23, 2011 3:50 am

Performance issues from wasted buffer pool memory

Posted on: June 1, 2011 10:13 am

Survey: cores vs. MAXDOP

Posted on: May 26, 2011 10:44 am

Benchmarking: Multiple data files on SSDs (plus the latest Fusion-io driver)

Posted on: May 24, 2011 12:25 pm

SOS_SCHEDULER_YIELD waits and the LOCK_HASH spinlock

Posted on: April 26, 2011 11:41 am

Survey: how much server memory is being wasted? (code to run)

Posted on: April 15, 2011 8:52 am

Advanced SQL Server performance tuning

Posted on: April 13, 2011 7:32 am

How to download a sqlservr.pdb symbol file

Posted on: April 13, 2011 4:03 am

How to examine IO subsystem latencies from within SQL Server

Posted on: April 11, 2011 6:37 am

Survey results: Common causes of performance problems

Posted on: April 6, 2011 6:37 am

Survey: have you ever used these DMVs?

Posted on: March 24, 2011 8:57 am

Survey: what are the most common causes of performance problems?

Posted on: March 17, 2011 9:45 am

Query plan analysis first steps

Posted on: March 16, 2011 2:28 pm

Ever had poor performance saving files in SSMS over slow network?

Posted on: March 13, 2011 12:33 pm

Survey: how is your tempdb configured?

Posted on: February 22, 2011 3:03 pm

Importance of network latency when using database mirroring

Posted on: February 8, 2011 10:02 am

Survey: what’s your plan for a plan?

Posted on: February 6, 2011 10:00 am

TechNet Magazine: January 2011 SQL Q&A column

Posted on: January 19, 2011 9:27 am

Adventures in query tuning: non-seekable WHERE clause expressions

Posted on: January 16, 2011 1:07 pm

Results of CPU power saving survey

Posted on: January 16, 2011 10:51 am

Are your CPUs running slowly? Tool tip and survey

Posted on: December 30, 2010 1:39 pm

SQL Server Wait Statistics (or please tell me where it hurts…)

Posted on: December 9, 2010 3:18 pm

Survey: what is the highest wait on your system?

Posted on: October 25, 2010 9:21 am

Benchmarking: Introducing SSDs (Part 3: random inserts with wait stats details)

Posted on: August 10, 2010 5:31 pm

Survey results around purchase and use of SSDs

Posted on: July 23, 2010 8:38 am

Benchmarking: Introducing SSDs (Part 2: sequential inserts)

Posted on: July 9, 2010 5:04 am

Benchmarking: do multiple data files make a difference?

Posted on: June 22, 2010 6:45 am

Benchmarking: Introducing SSDs (Part 1b: not overloaded log file array)

Posted on: May 10, 2010 4:22 pm

Benchmarking: Introducing SSDs (Part 1: not overloaded log file array)

Posted on: May 6, 2010 3:01 pm

Adventures in query tuning: unexpected key lookups

Posted on: May 1, 2010 6:26 pm

Missing index DMVs bug that could cost your sanity…

Posted on: May 1, 2010 4:41 pm

A SQL Server DBA myth a day: (28/30) BULK_LOGGED recovery model

Posted on: April 28, 2010 2:28 am

A SQL Server DBA myth a day: (26/30) nested transactions are real

Posted on: April 26, 2010 11:03 am

Survey: how are your transaction logs configured?

Posted on: April 23, 2010 1:54 pm

A DBA myth a day: (13/30) you cannot run DMVs when in the 80 compat mode (T-SQL Tuesday #005)

Posted on: April 13, 2010 10:40 am

A SQL Server DBA myth a day: (12/30) tempdb should always have one data file per processor core

Posted on: April 12, 2010 8:28 am

Benchmarking: 1-TB table population (part 5: network optimization again)

Posted on: March 25, 2010 1:09 pm

Inside sys.dm_db_index_physical_stats

Posted on: March 9, 2010 10:18 am

Benchmarking: 1-TB table population (part 4: network optimization)

Posted on: March 8, 2010 10:39 am

Using diskpart and wmic to check disk partition alignment

Posted on: February 28, 2010 9:40 am

Benchmarking: 1-TB table population (part 3: separating data and log files)

Posted on: February 15, 2010 12:24 pm

Benchmarking: 1-TB table population (part 2: optimizing log block IO size and how log IO works)

Posted on: January 27, 2010 11:23 am

Benchmarking: 1-TB table population (part 1: the baseline)

Posted on: January 21, 2010 10:54 am

Interesting case of watching log file growth during a perf test

Posted on: January 18, 2010 11:56 am

Turning off the ghost cleanup task for a performance gain

Posted on: January 8, 2010 9:32 pm

Interesting 2008 partitioned view perf bug fixed in SP1 CU4

Posted on: December 3, 2009 11:28 am

Benchmarking hardware setup

Posted on: December 1, 2009 5:50 pm

Tracking expensive queries with extended events in SQL 2008

Posted on: October 15, 2009 4:13 pm

Which index will SQL Server use to count all rows

Posted on: October 8, 2009 3:20 pm

Survey: how do you create and maintain statistics

Posted on: September 15, 2009 12:10 pm

Important considerations when performance tuning

Posted on: June 7, 2009 7:42 pm

Weekly survey: what’s the most important thing when performance tuning?

Posted on: May 30, 2009 6:38 pm

Investigating locking and deadlocking with %%lockres%%

Posted on: May 30, 2009 3:41 pm

An example of a nasty cluster key

Posted on: May 20, 2009 12:45 pm

Clustered or nonclustered index on a random GUID?

Posted on: May 14, 2009 9:34 am

Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly?

Posted on: May 13, 2009 4:29 pm

How expensive are page splits in terms of transaction log?

Posted on: May 12, 2009 5:50 pm

What is FSAgent.exe and why does it have lots of waits?

Posted on: May 6, 2009 4:21 pm

Misconceptions around adding columns to a table

Posted on: May 6, 2009 3:38 pm

Why did the Windows 7 RC download failure happen?

Posted on: May 5, 2009 11:57 am

Performance bug: NOLOCK scans involving off-row LOB data

Posted on: April 30, 2009 5:34 pm

Physical database layout vs. database size

Posted on: April 27, 2009 12:21 am

MS announces support for ‘lock pages in memory’ for Standard Edition

Posted on: April 26, 2009 8:33 pm

Misconceptions around TF 1118

Posted on: April 23, 2009 9:19 pm

Why could restoring a log-shipping log backup be slow?

Posted on: April 21, 2009 5:48 pm

Updated whitepaper: Troubleshooting Performance Problems in SQL Server 2008

Posted on: April 15, 2009 11:49 pm

New research paper: Migrating Server Storage to SSDs: Analysis of Tradeoffs

Posted on: April 13, 2009 5:14 pm

Weekly survey: does size really matter – or is it what you do with it?

Posted on: April 10, 2009 3:05 pm

Importance of choosing the right LOB storage technique

Posted on: April 3, 2009 8:46 am

DBCC PINTABLE

Posted on: March 24, 2009 9:40 am

TechNet Magazine: April 2009 SQL Q&A column

Posted on: March 11, 2009 12:57 pm

New whitepaper on tuning Change Data Capture performance

Posted on: February 15, 2009 2:12 pm

Performance impact of lots of VLFs in the transaction log

Posted on: February 9, 2009 6:18 pm

Comprehensive tempdb blog post series

Posted on: January 16, 2009 9:24 am

TechNet Magazine: December 2008 SQL Q&A column

Posted on: November 12, 2008 11:51 am

New minimally-logged insert functionality in SQL Server 2008

Posted on: October 28, 2008 1:26 am

High-performance FILESTREAM tips and tricks

Posted on: August 25, 2008 10:53 pm

Can GUID cluster keys cause non-clustered index fragmentation?

Posted on: August 20, 2008 7:11 pm

User groups and classes in August and September

Posted on: August 11, 2008 6:36 pm

How hard is it to pick the right non-clustered indexes?

Posted on: May 14, 2008 10:13 pm

SQL Server 2008: FILESTREAM performance

Posted on: March 9, 2008 5:45 pm

CHECKDB From Every Angle: Example DBCC CHECKDB run-times

Posted on: February 12, 2008 8:35 pm

The frustration of sweeping generalizations – follow on from Search Engine Q&A #12

Posted on: January 29, 2008 5:35 am

Search Engine Q&A #12: Should you create multiple files for a user DB on a multi-core box?

Posted on: January 29, 2008 2:10 am

Whitepaper on Predeployment I/O Best Practices, plus a few urban legends around SQL Server IO

Posted on: January 10, 2008 10:38 pm

SQL Server 2008: Hot-Add CPU (and affinity masks)

Posted on: January 10, 2008 12:11 am

SQL Server 2008: Backup Compression CPU Cost

Posted on: January 9, 2008 10:26 am

Paul and Kimberly interview on RunAs Radio – What’s New in SQL Server 2008?

Posted on: December 12, 2007 6:07 pm

CHECKDB From Every Angle: How long will CHECKDB take to run?

Posted on: November 15, 2007 4:22 am

Auto-shrink – turn it OFF!

Posted on: November 13, 2007 4:28 am

Conference Questions Pot-Pourri #4: How many databases can you really mirror per instance?

Posted on: November 9, 2007 11:58 pm

How can data-type choice affect performance?

Posted on: November 9, 2007 10:31 pm

More on Database Mirroring performance and index maintenance

Posted on: October 19, 2007 12:37 am

SQL Server 2008: Performance boost for Database Mirroring

Posted on: October 11, 2007 12:06 am

Search Engine Q&A #5: Do multi-core CPUs perform better than single-core CPUs?

Posted on: October 5, 2007 7:43 pm

Indexes From Every Angle: How can you tell if an index is being used?

Posted on: October 5, 2007 1:39 am

SQL Server 2008: Parallelism improvements for partitioning

Posted on: October 3, 2007 10:40 pm

SQL Server 2008: New Performance Counters for Database Mirroring

Posted on: October 1, 2007 8:31 pm