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)
 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" 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 size | 24 KB |
---|---|
Estimated Operator Cost | 0 (0%) |
Estimated Subtree Cost | 0.0121842 |
Degree of Parallelism | 0 |
Estimated Number of Rows | 3 |
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 Operation | Top |
---|---|
Logical Operation | Top |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Actual Number of Rows | 3 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0000003 (0%) |
Estimated I/O Cost | 0 |
Estimated CPU Cost | 0.0000003 |
Estimated Subtree Cost | 0.0121842 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows | 3 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Node ID | 0 |
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 Operation | Stream Aggregate |
---|---|
Logical Operation | Aggregate |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Actual Number of Rows | 3 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0000038 (0%) |
Estimated I/O Cost | 0 |
Estimated CPU Cost | 0.0000066 |
Estimated Subtree Cost | 0.0121839 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows | 3 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Node ID | 1 |
Output List
Union1002
Merge Join
(Concatenation)
Cost: 46%
Merge Join
Physical Operation | Merge Join |
---|---|
Logical Operation | Concatenation |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Actual Number of Rows | 6 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0056106 (46%) |
Estimated I/O Cost | 0 |
Estimated CPU Cost | 0.0056176 |
Estimated Subtree Cost | 0.0121801 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows | 4.61538 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Node ID | 2 |
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 Operation | Clustered Index Scan |
---|---|
Logical Operation | Clustered Index Scan |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Storage | RowStore |
Number of Rows Read | 4 |
Actual Number of Rows | 4 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0032864 (27%) |
Estimated I/O Cost | 0.003125 |
Estimated CPU Cost | 0.0001614 |
Estimated Subtree Cost | 0.0032864 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows to be Read | 4 |
Estimated Number of Rows | 4 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Ordered | True |
Node ID | 3 |
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 Operation | Clustered Index Scan |
---|---|
Logical Operation | Clustered Index Scan |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Storage | RowStore |
Number of Rows Read | 3 |
Actual Number of Rows | 3 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0032831 (27%) |
Estimated I/O Cost | 0.003125 |
Estimated CPU Cost | 0.0001614 |
Estimated Subtree Cost | 0.0032831 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows to be Read | 4 |
Estimated Number of Rows | 1 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Ordered | True |
Node ID | 4 |
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)
 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" 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 size | 24 KB |
---|---|
Estimated Operator Cost | 0 (0%) |
Estimated Subtree Cost | 0.0121723 |
Degree of Parallelism | 0 |
Estimated Number of Rows | 2.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 Operation | Top |
---|---|
Logical Operation | Top |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Actual Number of Rows | 3 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0000002 (0%) |
Estimated I/O Cost | 0 |
Estimated CPU Cost | 0.0000002 |
Estimated Subtree Cost | 0.0121723 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows | 2.04 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Node ID | 0 |
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 Operation | Stream Aggregate |
---|---|
Logical Operation | Aggregate |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Actual Number of Rows | 3 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0000022 (0%) |
Estimated I/O Cost | 0 |
Estimated CPU Cost | 0.0000022 |
Estimated Subtree Cost | 0.0121721 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows | 2.04 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Node ID | 1 |
Output List
Union1002
Merge Join
(Concatenation)
Cost: 46%
Merge Join
Physical Operation | Merge Join |
---|---|
Logical Operation | Concatenation |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Actual Number of Rows | 3 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0056033 (46%) |
Estimated I/O Cost | 0 |
Estimated CPU Cost | 0.0056033 |
Estimated Subtree Cost | 0.0121699 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows | 2.4 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Node ID | 2 |
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 Operation | Clustered Index Seek |
---|---|
Logical Operation | Clustered Index Seek |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Storage | RowStore |
Number of Rows Read | 1 |
Actual Number of Rows | 1 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0032833 (27%) |
Estimated I/O Cost | 0.003125 |
Estimated CPU Cost | 0.0001583 |
Estimated Subtree Cost | 0.0032833 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows to be Read | 1.2 |
Estimated Number of Rows | 1.2 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Ordered | True |
Node ID | 3 |
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 Operation | Clustered Index Seek |
---|---|
Logical Operation | Clustered Index Seek |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Storage | RowStore |
Number of Rows Read | 2 |
Actual Number of Rows | 2 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0032833 (27%) |
Estimated I/O Cost | 0.003125 |
Estimated CPU Cost | 0.0001583 |
Estimated Subtree Cost | 0.0032833 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows to be Read | 1.2 |
Estimated Number of Rows | 1.2 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Ordered | True |
Node ID | 4 |
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])