HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlMinor

In SQL Server, what is "Partitioned Table Parallelism" that is only available in Enterprise Edition?

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
availablewhateditionsqlenterprisethatserverparallelismpartitionedonly

Problem

I am reviewing the differences between Standard and Enterprise editions of SQL Server and can't reproduce the differences advertised in this demo that explains the differences - the performance I observe when running a query across Standard and Enterprise are comparable, and queries run in parallel across partitioned tables in the execution plan.

I have verified that:

  • The queries produce identical query plans



  • The queries produce similar runtime with set statistics time on



It seems that in SQL Server 2016 this difference is not reproducible. Is there something else this feature affects - maybe I am not testing for the right thing but the queries are comparable to that in the demo.

This is the script I have used to test:

-- MAXDOP is 10

--  structure of table
--Column                type
--testData.PKcolumn1    bigint
--testData.PKcolumn2    int
--date                  datetime
--testData.PKcolumn3    bigint
--metric1               float
--metric2               float
--metric3               float
--metric4               float

--index_description                                                 index_keys
--clustered, unique, primary key located on ps_testData             categoryId, transactionId, date

--pf_testData/ps_testData is a range right datetime partition scheme,  fanout 368
GO

-- Actual partition count: 368
-- all 10 threads participate in the scan, 12MM to 13MM rows / thread 
--      each partition likely read by a single thread
SELECT COUNT(*), MIN(date), MAX(date)
FROM testData
GO

-- Actual partitions with data count: 31
-- all 10 threads participate in the scan, 3MM to 4MM rows / thread 
--      each partition likely read by a single thread
SELECT COUNT(*), MIN(date), MAX(date)
FROM testData
WHERE date >= '2020-01-01' AND date = '2020-01-01' AND date = '2020-01-01' AND date < '2020-01-02'
GO


  • SQL Standard Query Plan



  • SQL Enterprise Query Plan



n.b. This query has a group by clause - both show parallelism across partitions and w

Solution

TMWFR

This was a documentation error. I blogged about the results of many tests comparing parallel queries against partitioned tables here:

  • Partitioning And Parallelism



That resulted in the documentation getting updated to reflect that there is no difference

  • RDBMS scalability and performance

Context

StackExchange Database Administrators Q#274779, answer score: 2

Revisions (0)

No revisions yet.