By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE dbo.Test
(
c1 integer NOT NULL,
c2 integer NOT NULL,
INDEX CCS CLUSTERED COLUMNSTORE,
INDEX ic2 NONCLUSTERED (c2)
);
SET STATISTICS XML ON;
SELECT *
FROM dbo.Test WITH (INDEX(ic2))
WHERE c2 = 1;
c1 | c2 |
---|
Microsoft SQL Server 2005 XML Showplan |
---|
<ShowPlanXML xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan" Version="1.539" Build="15.0.4223.1"><BatchSequence><Batch><Statements><StmtSimple StatementText="SELECT *
FROM dbo.Test WITH (INDEX(ic2))
WHERE c2 = 1" StatementId="1" StatementCompId="2" StatementType="SELECT" RetrievedFromCache="true" StatementSubTreeCost="0.00657038" StatementEstRows="1" SecurityPolicyApplied="false" StatementOptmLevel="FULL" QueryHash="0x896567C834C3D189" QueryPlanHash="0xAF86B5C58302BC1B" StatementOptmEarlyAbortReason="GoodEnoughPlanFound" CardinalityEstimationModelVersion="150"><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="152"><MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0" GrantedMemory="0" MaxUsedMemory="0"></MemoryGrantInfo><OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="1258238" EstimatedPagesCached="78639" EstimatedAvailableDegreeOfParallelism="1" MaxCompileMemory="1532912"></OptimizerHardwareDependentProperties><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="Nested Loops" LogicalOp="Inner Join" EstimateRows="1" EstimateIO="0" EstimateCPU="4.18e-06" AvgRowSize="15" EstimatedTotalSubtreeCost="0.00657038" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Database="[fiddle_f68f631f4f7944b0849146c817c3be87]" Schema="[dbo]" Table="[Test]" Column="c1"></ColumnReference><ColumnReference Database="[fiddle_f68f631f4f7944b0849146c817c3be87]" Schema="[dbo]" Table="[Test]" Column="c2"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualElapsedms="0" ActualCPUms="0" ActualEndOfScans="1" ActualExecutions="1"></RunTimeCountersPerThread></RunTimeInformation><NestedLoops Optimized="0"><OuterReferences><ColumnReference Column="ColStoreLoc1000"></ColumnReference></OuterReferences><RelOp NodeId="1" PhysicalOp="Index Seek" LogicalOp="Index Seek" EstimateRows="1" EstimatedRowsRead="1" EstimateIO="0.003125" EstimateCPU="0.0001581" AvgRowSize="19" EstimatedTotalSubtreeCost="0.0032831" TableCardinality="0" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Column="ColStoreLoc1000"></ColumnReference><ColumnReference Database="[fiddle_f68f631f4f7944b0849146c817c3be87]" Schema="[dbo]" Table="[Test]" Column="c2"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualElapsedms="0" ActualCPUms="0" ActualScans="1" ActualLogicalReads="0" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualEndOfScans="1" ActualExecutions="1"></RunTimeCountersPerThread></RunTimeInformation><IndexScan Ordered="1" ScanDirection="FORWARD" ForcedIndex="1" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="RowStore"><DefinedValues><DefinedValue><ColumnReference Column="ColStoreLoc1000"></ColumnReference></DefinedValue><DefinedValue><ColumnReference Database="[fiddle_f68f631f4f7944b0849146c817c3be87]" Schema="[dbo]" Table="[Test]" Column="c2"></ColumnReference></DefinedValue></DefinedValues><Object Database="[fiddle_f68f631f4f7944b0849146c817c3be87]" Schema="[dbo]" Table="[Test]" Index="[ic2]" IndexKind="NonClustered" Storage="RowStore"></Object><SeekPredicates><SeekPredicateNew><SeekKeys><Prefix ScanType="EQ"><RangeColumns><ColumnReference Database="[fiddle_f68f631f4f7944b0849146c817c3be87]" Schema="[dbo]" Table="[Test]" Column="c2"></ColumnReference></RangeColumns><RangeExpressions><ScalarOperator ScalarString="(1)"><Const ConstValue="(1)"></Const></ScalarOperator></RangeExpressions></Prefix></SeekKeys></SeekPredicateNew></SeekPredicates></IndexScan></RelOp><RelOp NodeId="3" PhysicalOp="Clustered Index Seek" LogicalOp="Clustered Index Seek" EstimateRows="1" EstimateIO="0.003125" EstimateCPU="0.0001581" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0032831" TableCardinality="0" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Database="[fiddle_f68f631f4f7944b0849146c817c3be87]" Schema="[dbo]" Table="[Test]" Column="c1"></ColumnReference></OutputList><RunTimeInformation><RunTimeCountersPerThread Thread="0" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualElapsedms="0" ActualCPUms="0" ActualScans="0" ActualLogicalReads="0" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualEndOfScans="0" ActualExecutions="0"></RunTimeCountersPerThread></RunTimeInformation><IndexScan Lookup="1" Ordered="1" ScanDirection="FORWARD" ForcedIndex="1" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="ColumnStore"><DefinedValues><DefinedValue><ColumnReference Database="[fiddle_f68f631f4f7944b0849146c817c3be87]" Schema="[dbo]" Table="[Test]" Column="c1"></ColumnReference></DefinedValue></DefinedValues><Object Database="[fiddle_f68f631f4f7944b0849146c817c3be87]" Schema="[dbo]" Table="[Test]" Index="[CCS]" TableReferenceId="-1" IndexKind="Clustered" Storage="ColumnStore"></Object><SeekPredicates><SeekPredicateNew><SeekKeys><Prefix ScanType="EQ"><RangeColumns><ColumnReference Column="ColStoreLoc1000"></ColumnReference></RangeColumns><RangeExpressions><ScalarOperator ScalarString="[ColStoreLoc1000]"><Identifier><ColumnReference Column="ColStoreLoc1000"></ColumnReference></Identifier></ScalarOperator></RangeExpressions></Prefix></SeekKeys></SeekPredicateNew></SeekPredicates></IndexScan></RelOp></NestedLoops></RelOp></QueryPlan></StmtSimple></Statements></Batch></BatchSequence></ShowPlanXML> |
SELECT *
FROM dbo.Test WITH (INDEX(ic2))
WHERE c2 = 1
SELECT
SELECT
Cached plan size | 24 KB |
---|---|
Estimated Operator Cost | 0 (0%) |
Estimated Subtree Cost | 0.0065704 |
Degree of Parallelism | 0 |
Estimated Number of Rows | 1 |
Statement
SELECT *
FROM dbo.Test WITH (INDEX(ic2))
WHERE c2 = 1
Nested Loops
(Inner Join)
Cost: 0%
Nested Loops
For each row in the top (outer) input, scan the bottom (inner) input, and output matching rows.
Physical Operation | Nested Loops |
---|---|
Logical Operation | Inner Join |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Actual Number of Rows | 0 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0000042 (0%) |
Estimated I/O Cost | 0 |
Estimated CPU Cost | 0.0000042 |
Estimated Subtree Cost | 0.0065704 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows | 1 |
Estimated Row Size | 15 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Node ID | 0 |
Output List
[fiddle_f68f631f4f7944b0849146c817c3be87].[dbo].[Test].c1
[fiddle_f68f631f4f7944b0849146c817c3be87].[dbo].[Test].c2
Outer References
ColStoreLoc1000
Index Seek (NonClustered)
[Test].[ic2]
Cost: 50%
Index Seek (NonClustered)
Scan a particular range of rows from a nonclustered index.
Physical Operation | Index Seek |
---|---|
Logical Operation | Index Seek |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Storage | RowStore |
Actual Number of Rows | 0 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0032831 (50%) |
Estimated I/O Cost | 0.003125 |
Estimated CPU Cost | 0.0001581 |
Estimated Subtree Cost | 0.0032831 |
Estimated Number of Executions | 1 |
Number of Executions | 1 |
Estimated Number of Rows to be Read | 1 |
Estimated Number of Rows | 1 |
Estimated Row Size | 19 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Ordered | True |
Node ID | 1 |
Output List
ColStoreLoc1000
[fiddle_f68f631f4f7944b0849146c817c3be87].[dbo].[Test].c2
Object
[fiddle_f68f631f4f7944b0849146c817c3be87].[dbo].[Test].[ic2]
Seek Predicates
Seek Keys[1]: Prefix: [fiddle_f68f631f4f7944b0849146c817c3be87].[dbo].[Test].c2 = Scalar Operator((1))
Columnstore Index Scan (Clustered)
[Test].[CCS]
Cost: 50%
Columnstore Index Scan (Clustered)
Uses a supplied clustering key to lookup on a table that has a clustered index.
Physical Operation | Key Lookup |
---|---|
Logical Operation | Key Lookup |
Actual Execution Mode | Row |
Estimated Execution Mode | Row |
Storage | ColumnStore |
Actual Number of Rows | 0 |
Actual Number of Batches | 0 |
Estimated Operator Cost | 0.0032831 (50%) |
Estimated I/O Cost | 0.003125 |
Estimated CPU Cost | 0.0001581 |
Estimated Subtree Cost | 0.0032831 |
Estimated Number of Executions | 1 |
Estimated Number of Rows | 1 |
Estimated Row Size | 11 B |
Actual Rebinds | 0 |
Actual Rewinds | 0 |
Ordered | True |
Node ID | 3 |
Output List
[fiddle_f68f631f4f7944b0849146c817c3be87].[dbo].[Test].c1
Object
[fiddle_f68f631f4f7944b0849146c817c3be87].[dbo].[Test].[CCS]
Seek Predicates
Seek Keys[1]: Prefix: ColStoreLoc1000 = Scalar Operator([ColStoreLoc1000])