add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE TableA (
"ColumnA" VARCHAR(1),
"UserId" INTEGER PRIMARY KEY
);

INSERT INTO TableA
("ColumnA", "UserId")
VALUES
('x', '1'),
('y', '2'),
('z', '3'),
('w', '4');

CREATE TABLE TableB (
"ColumnB" VARCHAR(1),
"UserId" INTEGER PRIMARY KEY
);

INSERT INTO TableB
("ColumnB", "UserId")
VALUES
('a', '1'),
('b', '3'),
('c', '5'),
('d', '6');
8 rows affected
set statistics xml on
SELECT TOP (3)
t.UserId
FROM (
SELECT a.UserId
FROM TableA a
UNION ALL
SELECT b.UserId
FROM TableB b
) t
GROUP BY t.UserId
ORDER BY UserId;
UserId
1
2
3
Microsoft SQL Server 2005 XML Showplan
<ShowPlanXML xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan" Version="1.564" Build="16.0.1000.6"><BatchSequence><Batch><Statements><StmtSimple StatementText="SELECT TOP (3)&#xa; t.UserId&#xa;FROM (&#xa; SELECT a.UserId&#xa; FROM TableA a&#xa; UNION ALL&#xa; SELECT b.UserId&#xa; FROM TableB b&#xa;) t&#xa;GROUP BY t.UserId&#xa;ORDER BY UserId" StatementId="1" StatementCompId="1" StatementType="SELECT" StatementSqlHandle="0x0900B4484F23BC372CB2DEAFF4EEF22A004F0000000000000000000000000000000000000000000000000000" DatabaseContextSettingsId="1" ParentObjectId="0" StatementParameterizationType="0" RetrievedFromCache="true" StatementSubTreeCost="0.0121842" StatementEstRows="3" SecurityPolicyApplied="false" StatementOptmLevel="FULL" QueryHash="0x5083708FF924F1AA" QueryPlanHash="0x1B2CC007C3491057" StatementOptmEarlyAbortReason="GoodEnoughPlanFound" CardinalityEstimationModelVersion="160"><StatementSetOptions QUOTED_IDENTIFIER="true" ARITHABORT="true" CONCAT_NULL_YIELDS_NULL="true" ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" NUMERIC_ROUNDABORT="false"></StatementSetOptions><QueryPlan DegreeOfParallelism="0" NonParallelPlanReason="NoParallelPlansInDesktopOrExpressEdition" CachedPlanSize="24" CompileTime="0" CompileCPU="0" CompileMemory="192"><MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0" GrantedMemory="0" MaxUsedMemory="0"></MemoryGrantInfo><OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="1258238" EstimatedPagesCached="78639" EstimatedAvailableDegreeOfParallelism="1" MaxCompileMemory="1873496"></OptimizerHardwareDependentProperties><OptimizerStatsUsage><StatisticsInfo LastUpdate="2024-06-18T21:40:59.99" ModificationCount="0" SamplingPercent="100" Statistics="[PK__TableB__1788CC4C8F690C87]" Table="[TableB]" Schema="[dbo]" Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]"></StatisticsInfo><StatisticsInfo LastUpdate="2024-06-18T21:40:59.99" ModificationCount="0" SamplingPercent="100" Statistics="[PK__TableA__1788CC4C45A6C363]" Table="[TableA]" Schema="[dbo]" Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]"></StatisticsInfo></OptimizerStatsUsage><TraceFlags IsCompileTime="1"><TraceFlag Value="460" Scope="Global"></TraceFlag><TraceFlag Value="8017" Scope="Global"></TraceFlag></TraceFlags><TraceFlags IsCompileTime="0"><TraceFlag Value="460" Scope="Global"></TraceFlag><TraceFlag Value="8017" Scope="Global"></TraceFlag></TraceFlags><QueryTimeStats ElapsedTime="0" CpuTime="0"></QueryTimeStats><RelOp NodeId="0" PhysicalOp="Top" LogicalOp="Top" EstimateRows="3" EstimateIO="0" EstimateCPU="3e-07" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0121842" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Column="Union1002"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="3" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><Top RowCount="0" IsPercent="0" WithTies="0"><TopExpression><ScalarOperator ScalarString="(3)"><Const ConstValue="(3)"></Const></ScalarOperator></TopExpression><RelOp NodeId="1" PhysicalOp="Stream Aggregate" LogicalOp="Aggregate" EstimateRows="3" EstimateRowsWithoutRowGoal="5.2" EstimateIO="0" EstimateCPU="6.6e-06" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0121839" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Column="Union1002"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="3" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualEndOfScans="0" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><StreamAggregate><DefinedValues></DefinedValues><GroupBy><ColumnReference Column="Union1002"></ColumnReference></GroupBy><RelOp NodeId="2" PhysicalOp="Merge Join" LogicalOp="Concatenation" EstimateRows="4.61538" EstimateRowsWithoutRowGoal="8" EstimateIO="0" EstimateCPU="0.0056176" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0121801" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Column="Union1002"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="6" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualScans="0" ActualLogicalReads="0" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualEndOfScans="0" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><Merge><DefinedValues><DefinedValue><ColumnReference Column="Union1002"></ColumnReference><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableA]" Alias="[a]" Column="UserId"></ColumnReference><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableB]" Alias="[b]" Column="UserId"></ColumnReference></DefinedValue></DefinedValues><RelOp NodeId="3" PhysicalOp="Clustered Index Scan" LogicalOp="Clustered Index Scan" EstimateRows="4" EstimatedRowsRead="4" EstimateIO="0.003125" EstimateCPU="0.0001614" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0032864" TableCardinality="4" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableA]" Alias="[a]" Column="UserId"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="4" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualScans="1" ActualLogicalReads="2" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualRowsRead="4" ActualEndOfScans="0" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><IndexScan Ordered="1" ScanDirection="FORWARD" ForcedIndex="0" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="RowStore"><DefinedValues><DefinedValue><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableA]" Alias="[a]" Column="UserId"></ColumnReference></DefinedValue></DefinedValues><Object Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableA]" Index="[PK__TableA__1788CC4C45A6C363]" Alias="[a]" IndexKind="Clustered" Storage="RowStore"></Object></IndexScan></RelOp><RelOp NodeId="4" PhysicalOp="Clustered Index Scan" LogicalOp="Clustered Index Scan" EstimateRows="1" EstimateRowsWithoutRowGoal="4" EstimatedRowsRead="4" EstimateIO="0.003125" EstimateCPU="0.0001614" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0032831" TableCardinality="4" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableB]" Alias="[b]" Column="UserId"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="3" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualScans="1" ActualLogicalReads="2" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualRowsRead="3" ActualEndOfScans="0" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><IndexScan Ordered="1" ScanDirection="FORWARD" ForcedIndex="0" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="RowStore"><DefinedValues><DefinedValue><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableB]" Alias="[b]" Column="UserId"></ColumnReference></DefinedValue></DefinedValues><Object Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableB]" Index="[PK__TableB__1788CC4C8F690C87]" Alias="[b]" IndexKind="Clustered" Storage="RowStore"></Object></IndexScan></RelOp></Merge></RelOp></StreamAggregate></RelOp></Top></RelOp></QueryPlan></StmtSimple></Statements></Batch></BatchSequence></ShowPlanXML>
SELECT TOP (3) t.UserId FROM ( SELECT a.UserId FROM TableA a UNION ALL SELECT b.UserId FROM TableB b ) t GROUP BY t.UserId ORDER BY UserId
SELECT
SELECT
Cached plan size24 KB
Estimated Operator Cost0 (0%)
Estimated Subtree Cost0.0121842
Degree of Parallelism0
Estimated Number of Rows3
Statement
SELECT TOP (3) t.UserId FROM ( SELECT a.UserId FROM TableA a UNION ALL SELECT b.UserId FROM TableB b ) t GROUP BY t.UserId ORDER BY UserId
Top
Cost: 0%
Top
Select the first few rows based on a sort order.
Physical OperationTop
Logical OperationTop
Actual Execution ModeRow
Estimated Execution ModeRow
Actual Number of Rows3
Actual Number of Batches0
Estimated Operator Cost0.0000003 (0%)
Estimated I/O Cost0
Estimated CPU Cost0.0000003
Estimated Subtree Cost0.0121842
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows3
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
Node ID0
Output List
Union1002
Top Expression
(3)
Stream Aggregate
(Aggregate)
Cost: 0%
Stream Aggregate
Compute summary values for groups of rows in a suitably sorted stream.
Physical OperationStream Aggregate
Logical OperationAggregate
Actual Execution ModeRow
Estimated Execution ModeRow
Actual Number of Rows3
Actual Number of Batches0
Estimated Operator Cost0.0000038 (0%)
Estimated I/O Cost0
Estimated CPU Cost0.0000066
Estimated Subtree Cost0.0121839
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows3
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
Node ID1
Output List
Union1002
Merge Join
(Concatenation)
Cost: 46%
Merge Join
Physical OperationMerge Join
Logical OperationConcatenation
Actual Execution ModeRow
Estimated Execution ModeRow
Actual Number of Rows6
Actual Number of Batches0
Estimated Operator Cost0.0056106 (46%)
Estimated I/O Cost0
Estimated CPU Cost0.0056176
Estimated Subtree Cost0.0121801
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows4.61538
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
Node ID2
Output List
Union1002
Clustered Index Scan (Clustered)
[TableA].[PK__TableA__1788CC4C45A6C…
Cost: 27%
Clustered Index Scan (Clustered)
Scanning a clustered index, entirely or only a range.
Physical OperationClustered Index Scan
Logical OperationClustered Index Scan
Actual Execution ModeRow
Estimated Execution ModeRow
StorageRowStore
Number of Rows Read4
Actual Number of Rows4
Actual Number of Batches0
Estimated Operator Cost0.0032864 (27%)
Estimated I/O Cost0.003125
Estimated CPU Cost0.0001614
Estimated Subtree Cost0.0032864
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows to be Read4
Estimated Number of Rows4
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
OrderedTrue
Node ID3
Output List
[fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableA].[a].UserId
Object
[fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableA].[PK__TableA__1788CC4C45A6C363].[a]
Clustered Index Scan (Clustered)
[TableB].[PK__TableB__1788CC4C8F690…
Cost: 27%
Clustered Index Scan (Clustered)
Scanning a clustered index, entirely or only a range.
Physical OperationClustered Index Scan
Logical OperationClustered Index Scan
Actual Execution ModeRow
Estimated Execution ModeRow
StorageRowStore
Number of Rows Read3
Actual Number of Rows3
Actual Number of Batches0
Estimated Operator Cost0.0032831 (27%)
Estimated I/O Cost0.003125
Estimated CPU Cost0.0001614
Estimated Subtree Cost0.0032831
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows to be Read4
Estimated Number of Rows1
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
OrderedTrue
Node ID4
Output List
[fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableB].[b].UserId
Object
[fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableB].[PK__TableB__1788CC4C8F690C87].[b]
DECLARE @previousId int = 3;

SELECT TOP (3)
t.UserId
FROM (
SELECT a.UserId
FROM TableA a
WHERE a.UserId > @previousId
UNION ALL
SELECT b.UserId
FROM TableB b
WHERE b.UserId > @previousId
) t
GROUP BY t.UserId
ORDER BY UserId;
UserId
4
5
6
Microsoft SQL Server 2005 XML Showplan
<ShowPlanXML xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan" Version="1.564" Build="16.0.1000.6"><BatchSequence><Batch><Statements><StmtSimple StatementText="SELECT TOP (3)&#xa; t.UserId&#xa;FROM (&#xa; SELECT a.UserId&#xa; FROM TableA a&#xa; WHERE a.UserId &gt; @previousId&#xa; UNION ALL&#xa; SELECT b.UserId&#xa; FROM TableB b&#xa; WHERE b.UserId &gt; @previousId&#xa;) t&#xa;GROUP BY t.UserId&#xa;ORDER BY UserId" StatementId="1" StatementCompId="2" StatementType="SELECT" StatementSqlHandle="0x0900A7416BBBC94351D0037D8788BD92096A0000000000000000000000000000000000000000000000000000" DatabaseContextSettingsId="1" ParentObjectId="0" StatementParameterizationType="0" RetrievedFromCache="true" StatementSubTreeCost="0.0121723" StatementEstRows="2.04" SecurityPolicyApplied="false" StatementOptmLevel="FULL" QueryHash="0xC178F5ADAFC958B1" QueryPlanHash="0x70855CA909C52D6F" StatementOptmEarlyAbortReason="GoodEnoughPlanFound" CardinalityEstimationModelVersion="160"><StatementSetOptions QUOTED_IDENTIFIER="true" ARITHABORT="true" CONCAT_NULL_YIELDS_NULL="true" ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" NUMERIC_ROUNDABORT="false"></StatementSetOptions><QueryPlan DegreeOfParallelism="0" NonParallelPlanReason="NoParallelPlansInDesktopOrExpressEdition" CachedPlanSize="24" CompileTime="13" CompileCPU="13" CompileMemory="232"><MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0" GrantedMemory="0" MaxUsedMemory="0"></MemoryGrantInfo><OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="1258238" EstimatedPagesCached="78639" EstimatedAvailableDegreeOfParallelism="1" MaxCompileMemory="1873496"></OptimizerHardwareDependentProperties><OptimizerStatsUsage><StatisticsInfo LastUpdate="2024-06-18T21:40:59.99" ModificationCount="0" SamplingPercent="100" Statistics="[PK__TableB__1788CC4C8F690C87]" Table="[TableB]" Schema="[dbo]" Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]"></StatisticsInfo><StatisticsInfo LastUpdate="2024-06-18T21:40:59.99" ModificationCount="0" SamplingPercent="100" Statistics="[PK__TableA__1788CC4C45A6C363]" Table="[TableA]" Schema="[dbo]" Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]"></StatisticsInfo></OptimizerStatsUsage><TraceFlags IsCompileTime="1"><TraceFlag Value="460" Scope="Global"></TraceFlag><TraceFlag Value="8017" Scope="Global"></TraceFlag></TraceFlags><TraceFlags IsCompileTime="0"><TraceFlag Value="460" Scope="Global"></TraceFlag><TraceFlag Value="8017" Scope="Global"></TraceFlag></TraceFlags><QueryTimeStats ElapsedTime="0" CpuTime="0"></QueryTimeStats><RelOp NodeId="0" PhysicalOp="Top" LogicalOp="Top" EstimateRows="2.04" EstimateIO="0" EstimateCPU="2.04e-07" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0121723" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Column="Union1002"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="3" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><Top RowCount="0" IsPercent="0" WithTies="0"><TopExpression><ScalarOperator ScalarString="(3)"><Const ConstValue="(3)"></Const></ScalarOperator></TopExpression><RelOp NodeId="1" PhysicalOp="Stream Aggregate" LogicalOp="Aggregate" EstimateRows="2.04" EstimateIO="0" EstimateCPU="2.22e-06" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0121721" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Column="Union1002"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="3" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualEndOfScans="0" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><StreamAggregate><DefinedValues></DefinedValues><GroupBy><ColumnReference Column="Union1002"></ColumnReference></GroupBy><RelOp NodeId="2" PhysicalOp="Merge Join" LogicalOp="Concatenation" EstimateRows="2.4" EstimateIO="0" EstimateCPU="0.00560326" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0121699" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Column="Union1002"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="3" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualScans="0" ActualLogicalReads="0" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><Merge><DefinedValues><DefinedValue><ColumnReference Column="Union1002"></ColumnReference><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableA]" Alias="[a]" Column="UserId"></ColumnReference><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableB]" Alias="[b]" Column="UserId"></ColumnReference></DefinedValue></DefinedValues><RelOp NodeId="3" PhysicalOp="Clustered Index Seek" LogicalOp="Clustered Index Seek" EstimateRows="1.2" EstimatedRowsRead="1.2" EstimateIO="0.003125" EstimateCPU="0.00015832" AvgRowSize="11" EstimatedTotalSubtreeCost="0.00328332" TableCardinality="4" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableA]" Alias="[a]" Column="UserId"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="1" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualScans="1" ActualLogicalReads="2" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualRowsRead="1" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><IndexScan Ordered="1" ScanDirection="FORWARD" ForcedIndex="0" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="RowStore"><DefinedValues><DefinedValue><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableA]" Alias="[a]" Column="UserId"></ColumnReference></DefinedValue></DefinedValues><Object Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableA]" Index="[PK__TableA__1788CC4C45A6C363]" Alias="[a]" IndexKind="Clustered" Storage="RowStore"></Object><SeekPredicates><SeekPredicateNew><SeekKeys><StartRange ScanType="GT"><RangeColumns><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableA]" Alias="[a]" Column="UserId"></ColumnReference></RangeColumns><RangeExpressions><ScalarOperator ScalarString="[@previousId]"><Identifier><ColumnReference Column="@previousId"></ColumnReference></Identifier></ScalarOperator></RangeExpressions></StartRange></SeekKeys></SeekPredicateNew></SeekPredicates></IndexScan></RelOp><RelOp NodeId="4" PhysicalOp="Clustered Index Seek" LogicalOp="Clustered Index Seek" EstimateRows="1.2" EstimatedRowsRead="1.2" EstimateIO="0.003125" EstimateCPU="0.00015832" AvgRowSize="11" EstimatedTotalSubtreeCost="0.00328332" TableCardinality="4" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableB]" Alias="[b]" Column="UserId"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="2" Batches="0" ActualElapsedms="0" ActualCPUms="0" ActualScans="1" ActualLogicalReads="2" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualRowsRead="2" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row"></RunTimeCountersPerThread></RunTimeInformation><IndexScan Ordered="1" ScanDirection="FORWARD" ForcedIndex="0" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="RowStore"><DefinedValues><DefinedValue><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableB]" Alias="[b]" Column="UserId"></ColumnReference></DefinedValue></DefinedValues><Object Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableB]" Index="[PK__TableB__1788CC4C8F690C87]" Alias="[b]" IndexKind="Clustered" Storage="RowStore"></Object><SeekPredicates><SeekPredicateNew><SeekKeys><StartRange ScanType="GT"><RangeColumns><ColumnReference Database="[fiddle_582761a960ef4c819bf14b900ecc9ce1]" Schema="[dbo]" Table="[TableB]" Alias="[b]" Column="UserId"></ColumnReference></RangeColumns><RangeExpressions><ScalarOperator ScalarString="[@previousId]"><Identifier><ColumnReference Column="@previousId"></ColumnReference></Identifier></ScalarOperator></RangeExpressions></StartRange></SeekKeys></SeekPredicateNew></SeekPredicates></IndexScan></RelOp></Merge></RelOp></StreamAggregate></RelOp></Top></RelOp><ParameterList><ColumnReference Column="@previousId" ParameterDataType="int" ParameterRuntimeValue="(3)"></ColumnReference></ParameterList></QueryPlan></StmtSimple></Statements></Batch></BatchSequence></ShowPlanXML>
SELECT TOP (3) t.UserId FROM ( SELECT a.UserId FROM TableA a WHERE a.UserId > @previousId UNION ALL SELECT b.UserId FROM TableB b WHERE b.UserId > @previousId ) t GROUP BY t.UserId ORDER BY UserId
SELECT
SELECT
Cached plan size24 KB
Estimated Operator Cost0 (0%)
Estimated Subtree Cost0.0121723
Degree of Parallelism0
Estimated Number of Rows2.04
Statement
SELECT TOP (3) t.UserId FROM ( SELECT a.UserId FROM TableA a WHERE a.UserId > @previousId UNION ALL SELECT b.UserId FROM TableB b WHERE b.UserId > @previousId ) t GROUP BY t.UserId ORDER BY UserId
Top
Cost: 0%
Top
Select the first few rows based on a sort order.
Physical OperationTop
Logical OperationTop
Actual Execution ModeRow
Estimated Execution ModeRow
Actual Number of Rows3
Actual Number of Batches0
Estimated Operator Cost0.0000002 (0%)
Estimated I/O Cost0
Estimated CPU Cost0.0000002
Estimated Subtree Cost0.0121723
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows2.04
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
Node ID0
Output List
Union1002
Top Expression
(3)
Stream Aggregate
(Aggregate)
Cost: 0%
Stream Aggregate
Compute summary values for groups of rows in a suitably sorted stream.
Physical OperationStream Aggregate
Logical OperationAggregate
Actual Execution ModeRow
Estimated Execution ModeRow
Actual Number of Rows3
Actual Number of Batches0
Estimated Operator Cost0.0000022 (0%)
Estimated I/O Cost0
Estimated CPU Cost0.0000022
Estimated Subtree Cost0.0121721
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows2.04
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
Node ID1
Output List
Union1002
Merge Join
(Concatenation)
Cost: 46%
Merge Join
Physical OperationMerge Join
Logical OperationConcatenation
Actual Execution ModeRow
Estimated Execution ModeRow
Actual Number of Rows3
Actual Number of Batches0
Estimated Operator Cost0.0056033 (46%)
Estimated I/O Cost0
Estimated CPU Cost0.0056033
Estimated Subtree Cost0.0121699
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows2.4
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
Node ID2
Output List
Union1002
Clustered Index Seek (Clustered)
[TableA].[PK__TableA__1788CC4C45A6C…
Cost: 27%
Clustered Index Seek (Clustered)
Scanning a particular range of rows from a clustered index.
Physical OperationClustered Index Seek
Logical OperationClustered Index Seek
Actual Execution ModeRow
Estimated Execution ModeRow
StorageRowStore
Number of Rows Read1
Actual Number of Rows1
Actual Number of Batches0
Estimated Operator Cost0.0032833 (27%)
Estimated I/O Cost0.003125
Estimated CPU Cost0.0001583
Estimated Subtree Cost0.0032833
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows to be Read1.2
Estimated Number of Rows1.2
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
OrderedTrue
Node ID3
Output List
[fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableA].[a].UserId
Object
[fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableA].[PK__TableA__1788CC4C45A6C363].[a]
Seek Predicates
Seek Keys[1]: Start: [fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableA].UserId > Scalar Operator([@previousId])
Clustered Index Seek (Clustered)
[TableB].[PK__TableB__1788CC4C8F690…
Cost: 27%
Clustered Index Seek (Clustered)
Scanning a particular range of rows from a clustered index.
Physical OperationClustered Index Seek
Logical OperationClustered Index Seek
Actual Execution ModeRow
Estimated Execution ModeRow
StorageRowStore
Number of Rows Read2
Actual Number of Rows2
Actual Number of Batches0
Estimated Operator Cost0.0032833 (27%)
Estimated I/O Cost0.003125
Estimated CPU Cost0.0001583
Estimated Subtree Cost0.0032833
Estimated Number of Executions1
Number of Executions1
Estimated Number of Rows to be Read1.2
Estimated Number of Rows1.2
Estimated Row Size11 B
Actual Rebinds0
Actual Rewinds0
OrderedTrue
Node ID4
Output List
[fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableB].[b].UserId
Object
[fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableB].[PK__TableB__1788CC4C8F690C87].[b]
Seek Predicates
Seek Keys[1]: Start: [fiddle_582761a960ef4c819bf14b900ecc9ce1].[dbo].[TableB].UserId > Scalar Operator([@previousId])