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

Learn Better: Pause to Review More

By

If you want to learn better, pause more in your learning to intentionally review.

Azure SQL Managed Instance Next-Gen: Bring on the IOPS

By

If you’ve used Azure SQL Managed Instance General Purpose, you know the drill: to...

SQL, MDX, DAX – the languages of data

By

Ramblings of a retired data architect Let me start by saying that I have...

Read the latest Blogs

Forums

Azure SQL DBA certification

By ashrukpm

Hello team Can anyone share popular azure SQL DBA certification exam code? and your...

Faster Data Engineering with Python Notebooks: The Fabric Modern Data Platform

By John Miner

Comments posted to this topic are about the item Faster Data Engineering with Python...

Which Result II

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Which Result II

Visit the forum

Question of the Day

Which Result II

I have this code in SQL Server 2022:

CREATE SCHEMA etl;
GO
CREATE TABLE etl.product
(
    ProductID INT,
    ProductName VARCHAR(100)
);
GO
INSERT etl.product
VALUES
(2, 'Bee AI Wearable');
GO
CREATE TABLE dbo.product
(
    ProductID INT,
    ProductName VARCHAR(100)
);
GO
INSERT dbo.product
VALUES
(1, 'Spiral College-ruled Notebook');
GO
CREATE OR ALTER PROCEDURE etl.GettheProduct
AS
BEGIN
    exec('SELECT ProductName FROM product;')
END;
GO
When I execute this code as a user whose default schema is dbo and has rights to the tables and proc, what is returned?

See possible answers