There's your problem

The denial-of-service attack is coming from inside the house

A short post this week. While I was helping some friends recently, we experienced a curious thing where as soon as an application was started up, it was immediately followed by a denial-of-service attack that played out in the most mundane way you can imagine. The application itself is an API that is replacing the
-> Continue reading The denial-of-service attack is coming from inside the house

A filing cabinet drawer containing index cards

Using indexed views? Don’t forget this important tip.

Today after fighting with designing a view that let me create a clustered index on it (indexed views — also known as materialized views — are awesome in the right context!), I kept running into the same problem whenever I clicked Display Estimated Execution Plan in SQL Server Management Studio. The problem was that the plan was doing
-> Continue reading Using indexed views? Don’t forget this important tip.

Proposed SQL Server defaults: max server memory

(This post was updated on 5 February 2022.) A few months ago I suggested that the following settings should be the default for most SQL Server instances: Set cost threshold for parallelism to 50 Disable lightweight pooling if it is enabled Disable priority boost if it is enabled Set optimize for ad hoc workloads to
-> Continue reading Proposed SQL Server defaults: max server memory

The case of scalar UDF inlining, where context is everything

Here’s an interesting story for you this week. As part of the new Intelligent Query Processing improvements introduced in the upcoming SQL Server 2019, we find a new feature called scalar UDF inlining. This post is not about scalar UDF inlining exactly, but IQP-adjacent if you like. It works by taking a typical scalar user-defined
-> Continue reading The case of scalar UDF inlining, where context is everything

Proposed SQL Server defaults: optimize for ad hoc workloads

(This post was updated on 5 February 2022.) A few months ago I suggested that the following settings should be the default for most SQL Server instances: Set cost threshold for parallelism to 50 Disable lightweight pooling if it is enabled Disable priority boost if it is enabled Set optimize for ad hoc workloads to
-> Continue reading Proposed SQL Server defaults: optimize for ad hoc workloads

Proposed SQL Server defaults: disable priority boost

(This post was updated on 5 February 2022.) A few months ago I suggested that the following settings should be the default for most SQL Server instances: Set cost threshold for parallelism to 50 Disable lightweight pooling if it is enabled Disable priority boost if it is enabled Set optimize for ad hoc workloads to
-> Continue reading Proposed SQL Server defaults: disable priority boost

Proposed SQL Server defaults: disable lightweight pooling

(This post was updated on 5 February 2022.) A few months ago I suggested that the following settings should be the default for most SQL Server instances. Set cost threshold for parallelism to 50 Disable lightweight pooling if it is enabled Disable priority boost if it is enabled Set optimize for ad hoc workloads to
-> Continue reading Proposed SQL Server defaults: disable lightweight pooling

Proposed SQL Server defaults: cost threshold for parallelism

(This post was updated on 5 February 2022). A few months ago I suggested that the following settings should be the default for most SQL Server instances: Set cost threshold for parallelism to 50 Disable lightweight pooling if it is enabled Disable priority boost if it is enabled Set optimize for ad hoc workloads to
-> Continue reading Proposed SQL Server defaults: cost threshold for parallelism

When the buffer pool isn’t just in memory

Last time we looked at the four major components of a computer system, and then looked at the SQL Server buffer pool as a way to leverage the best performance from computing hardware. Temperature Before we dive deeper into the buffer pool, I wanted to briefly mention data access terminology. A common metaphor for accessing
-> Continue reading When the buffer pool isn’t just in memory

Flagrantly ignoring the 10% rule

My friend Michael J. Swart has a rule of thumb he calls Swart’s Ten Percent Rule. If you’re using over 10% of what SQL Server restricts you to, you’re doing it wrong. After a recent discussion on Twitter, I wondered what it would look like if I had 32,767 databases on one instance of SQL
-> Continue reading Flagrantly ignoring the 10% rule