Recompress Heaps
Heaps, or tables without a clustered index, suffer from a little-known problem when configured with page compression. Page compression only takes place once a page is 100% full, i.e. when no more rows can be…
PARSE vs CAST and CONVERT
T-SQL often provides multiple ways to “skin a cat”1 as they say. In this post, we’ll take a look at two “interesting” ways to convert dates and times from character-based columns into a column using…
Compress Big Tables
Storing data in SQL Server can be expensive. Not necessarily because disk is expensive; it isn’t and is generally getting cheaper all the time. Data costs money because it consumes RAM, requires CPU resources to…
Page Life Expectancy and Data Throughput
Page Life Expectancy, or PLE as it’s often referred to, is a measure of how frequently the average page of memory is evicted from the buffer pool. PLE is measured in seconds, and is the…
Transaction Isolation Levels and sp_executesql
SQL Server has several transaction isolation levels; probably the one most people are familiar with is the default of “read committed”. However, you may not realize it, but running dynamic code via sys.sp_executesql doesn’t necessarily…
Archive Data by Date
Tables with a large amount of data can become unwieldy. As a result, it’s not uncommon to archive data by date into an archive table that contains older rows we care about, but don’t need…