Phil Grayson

I’m Phil Grayson, founder of Aireforge, where we build tools to make database management more efficient, secure, and performance-driven. I’ve been working in the SQL Server space for over 25 years, with a focus on performance tuning, security, and observability. Currently, I’m gearing up to launch dbOptics, a platform designed to simplify database observability and performance tuning across complex estates, as well as Guard, a database firewall set to release next year.

I’m passionate about helping data professionals and organizations get the most out of their database environments. Aireforge has been active in the SQL community since 2016, sponsoring events like Data Relay and SQLBits, and we continue to contribute through knowledge sharing and community-driven events.
  • Interests: SQL Server performance tuning, index management, database security, automation of database tasks, observability and monitoring, knowledge sharing, cloud services, Azure infrastructure, motorcycle touring.

Blogs

Advice I Like: Art

By

Superheroes and saints never make art. Only imperfect beings can make art because art...

Why Optimize CPU for RDS SQL Server is a game changer

By

One feature that I have been waiting for years! The new announcement around optimize...

Performance tuning KubeVirt for SQL Server

By

Following on from my last post about Getting Started With KubeVirt & SQL Server,...

Read the latest Blogs

Forums

The AI Bubble and the Weak Foundation Beam

By dbakevlar

Comments posted to this topic are about the item The AI Bubble and the...

data type gets lost in data flow

By stan

Hi, in a simple oledb source->derived column->oledb destination    data flow, 2 of my...

i noticed the sqlhealth extende event is on by default , so can i reduce

By rajemessage 14195

hi, i noticed the sqlhealth extended event is on by default , and it...

Visit the forum

Question of the Day

The Read Committed Snapshot Isolation behaviour

I am currently working with Sql Server 2022 and AdventureWorks database. First of all, let's set the "Read Committed Snapshot" to ON:

use master;
go

alter database AdventureWorks set read_committed_snapshot on with no_wait;
go
Then, from Session 1, I execute the following code:
--Session 1
use AdventureWorks;
go

create table ##t1 (id int, f1 varchar(10));
go

insert into ##t1 values (1, 'A');
From another session, called Session 2, I open a transaction and execute the following update:
--Session 2
use AdventureWorks;
go

begin tran;
update ##t1 
set f1 = 'B'
where id = 1;
Now, going back to Session 1, what happens if I execute this statement?
--Session 1
select f1
from ##t1
where id = 1;
 

See possible answers