Blogs

Learn Indexing from Kendra in Huntington Beach on April 1 for $99!

Learn Indexing from Kendra in Huntington Beach on April 1 for $99!

on March 18, 2016 • 2 min read

It’s just two weeks until I’ll be teaching index tuning in Huntington Beach, California.

This day long session is $99 – and it’s a great time of year to plan a quick visit to California, no?

Continue reading

Live Query Statistics Do Not Replace Actual Execution Plans

Live Query Statistics Do Not Replace Actual Execution Plans

I like SQL Server’s new Live Query Statistics feature a lot for testing and tuning large queries. One of my first questions was whether this could replace using actual execution plans, or if it’s useful to use both during testing.

Finding: Both are useful. And both can impact query performance.

Continue reading

Find the Partitioning Key on an Existing Table with Partition_Ordinal

Find the Partitioning Key on an Existing Table with Partition_Ordinal

By Kendra Little on March 15, 2016 • 3 min read

Category: indexing

@SQLSista asked a fun question on Twitter recently about how to figure out the partitioning key on an existing table:

Bad Partitioned HEAP predates me. No clustered index, Primary Key on ID column and multiple datetime columns. How to find the partitioning key? #sqlhelp

Continue reading

The Case of DATETIME2 and Partition Elimination

The Case of DATETIME2 and Partition Elimination

on March 10, 2016 • 3 min read

Data types are hard.

I’ve been working on some demo code for table partitioning. I have a table partitioned by a column named FakeBirthDateStamp, which is a DATETIME2(0) column. The table is a partitioned heap. At this point in the demo, I hadn’t built any indexes. I wanted to show that partition elimination could occur on a partitioned table, even without a clustered index.

Continue reading

What Resets sys.dm_db_index_usage_stats and Missing Index DMVs?

What Resets sys.dm_db_index_usage_stats and Missing Index DMVs?

Managing indexes got trickier with SQL Server 2012. SQL Server has tracked and reported statistics on how often indexes are used and requested since SQL Server 2005. As of SQL Server 2012, suddenly all that information started getting reset whenever anyone ran ALTER INDEX REBUILD.

Continue reading

SQL Code Basics: Reusable Event Logging Utility

SQL Code Basics: Reusable Event Logging Utility

on March 3, 2016 • 2 min read

Category: indexing

When I created the SQLIndexWorkbook database [which was later renamed to BabbyNames], I purposefully shipped minimal code. I plan to add more as I build it, but I wanted to keep the first version dead simple.

Continue reading

SQL Server YEAR() Function and Index Performance

SQL Server YEAR() Function and Index Performance

on March 1, 2016 • 4 min read

SQL Server’s really clever about a lot of things. It’s not super clever about YEAR() when it comes to indexes, even using SQL Server 2016 – but you can either make your TSQL more clever, or work around it with computed columns.

Continue reading