Parameter Sensitive Plan Optimization

SQLServerCentral Article

Exploring Parameter Sensitive Plan Optimization in SQL Server 2022

  • Article

PSPO (Parameter Sensitive Plan Optimization) is a SQL Server feature that improves query performance by accepting varied data sizes based on the runtime parameter value(s) specified by the customer. It deals with the situation in which a single cached plan for a parameterized query isn't the best option for all potential incoming parameter values. Non-uniform data distributions exhibit this phenomenon. When using PSPO, SQL Server keeps several execution plans for a single query, each one customized for a particular parameter value. With the help of this feature, numerous execution plans for a parameterized query are generated, each of which is tailored for a certain range of parameter values.

You rated this post out of 5. Change rating

2023-07-21

4,827 reads

Blogs

T-SQL Tuesday #202: The Two Outages I Won't Ever Forget

By

My T-SQL Tuesday #202 entry for Marlon Ribunal's invitation on memorable SQL Server outages....

Measuring RAG Solutions: Are We Retrieving the Right Information?

By

A RAG pipeline that answers questions in the demo is not the same thing...

Advice I Like: Lots of Ideas

By

“A multitude of bad ideas is necessary for one good idea” – from Excellent...

Read the latest Blogs

Forums

Adding new column with DEFAULT

By Thomas Franz

Comments posted to this topic are about the item Adding new column with DEFAULT

How do I connect to a SQL Server database on my ISP?

By Doctor Who 2

I've got a web application for my side business. I've added a SQL Server...

Looking for New Blood

By Grant Fritchey

Comments posted to this topic are about the item Looking for New Blood

Visit the forum

Question of the Day

Adding new column with DEFAULT

Which number will the COUNT() return after executing the following statements:

DROP TABLE IF EXISTS #test;
CREATE TABLE #test (id INT)
INSERT INTO #test (id)
SELECT *
  FROM GENERATE_SERIES(1, 3) AS gs
;

ALTER TABLE #test ADD flag BIT CONSTRAINT DF_#test_flag DEFAULT 0;
go
UPDATE #test SET flag = 0 WHERE id = 1
UPDATE #test SET flag = 1 WHERE id = 2

INSERT INTO #test (id) VALUES (4)

SELECT COUNT(*)
  FROM #test AS t
 WHERE flag = 0
 

See possible answers