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: Pyramid Schemes

By

If someone is trying to convince you it’s not a pyramid scheme, it’s a...

Using Prompt AI for a Travel Data Analysis

By

I was looking back at my year and decided to see if SQL Prompt...

FinOps for Kubernetes: Leveraging OpenCost, KubeGreen, and Kubecost for Cost Efficiency

By

In the era of cloud-native applications, Kubernetes has become the default standard platform for...

Read the latest Blogs

Forums

Database file shrink issue.

By Tac11

Hi experts, I have a 3+ TB database on a 2019 sql server which...

The North Star for the Year

By Steve Jones - SSC Editor

Comments posted to this topic are about the item The North Star for the...

Multiple Escape Characters

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Multiple Escape Characters

Visit the forum

Question of the Day

Multiple Escape Characters

In SQL Server 2025, I run this code (in a database with the appropriate collation):

SELECT UNISTR('%*3041%*308A%*304C%*3068 and good night', '%*') AS 'A Classic';
What is returned?

See possible answers