Clustered Index Scan 与 Clustered Index Seek

本文详细解释了SQLServer查询分析器中ClusteredIndexScan与ClusteredIndexSeek的区别,包括这两种扫描方式的基本概念及应用场景,并通过实例展示了如何区分Scan与Seek。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在利用 SQL Server 查询分析器的执行计划中,会有许多扫描方式,其中就有 Clustered Index Scan 与 Clustered Index Seek,这二者有什么区别呢?

Clustered Index,为聚集索引,表示它们使用的都是聚集索引扫描。

Scan 表示它扫描一个范围或者是全部内容,Seek 表示扫描特定范围内的行。也就是说 Scan 并不知道要目标行是哪些,而 Seek 扫描表明我已经知道我要找的目标行是哪些,所以 Seek 一般要快些。

看看下面的语句,哪个(些)是 Scan 扫描,哪些是 Seek 扫描呢?

use master
go
select * from sysobjects
select * from sysobjects where name like 'sys%'
select * from sysobjects where id<3

由于 sysobjects 表是对 id 建的聚集索引,所以前两个查询语句使用的是 Scan,后面一个使用的是 Seek。

ScanAndSeek
Clustered Index Scan 与 Clustered Index Seek 的图标

转载于:https://www.cnblogs.com/jiangchao/archive/2010/01/05/1639600.html

<ShowPlanXML xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan" Version="1.518" Build="13.0.6300.2"> <BatchSequence> <Batch> <Statements> <StmtSimple StatementText="SELECT TOP 200 [CustomerId] FROM [WCloud].[dbo].[WCloud_CustomerRelationShip] WHERE DsId = 100 AND CreateDate > DATEADD(dd, -60, GETDATE()) AND Channel IS NULL AND Up = 1" StatementId="1" StatementCompId="1" StatementType="SELECT" RetrievedFromCache="false" StatementSubTreeCost="0.206484" StatementEstRows="5.38322" SecurityPolicyApplied="false" StatementOptmLevel="FULL" QueryHash="0xBC387DCA776D092C" QueryPlanHash="0x951860482D88434C" StatementOptmEarlyAbortReason="GoodEnoughPlanFound" CardinalityEstimationModelVersion="130"><StatementSetOptions QUOTED_IDENTIFIER="true" ARITHABORT="false" CONCAT_NULL_YIELDS_NULL="true" ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" NUMERIC_ROUNDABORT="false"></StatementSetOptions><QueryPlan CachedPlanSize="24" CompileTime="3" CompileCPU="3" CompileMemory="352"><MissingIndexes><MissingIndexGroup Impact="93.1052"><MissingIndex Database="[WCloud]" Schema="[dbo]" Table="[WCloud_CustomerRelationShip]"><ColumnGroup Usage="EQUALITY"><Column Name="[Channel]" ColumnId="23"></Column><Column Name="[Up]" ColumnId="27"></Column></ColumnGroup><ColumnGroup Usage="INEQUALITY"><Column Name="[CreateDate]" ColumnId="17"></Column></ColumnGroup><ColumnGroup Usage="INCLUDE"><Column Name="[CustomerId]" ColumnId="2"></Column><Column Name="[DsId]" ColumnId="16"></Column></ColumnGroup></MissingIndex></MissingIndexGroup></MissingIndexes><Warnings><PlanAffectingConvert ConvertIssue="Cardinality Estimate" Expression="CONVERT_IMPLICIT(int,[WCloud].[dbo].[WCloud_CustomerRelationShip].[DsId],0)"></PlanAffectingConvert><PlanAffectingConvert ConvertIssue="Seek Plan" Expression="CONVERT_IMPLICIT(int,[WCloud].[dbo].[WCloud_CustomerRelationShip].[DsId],0)=(100)"></PlanAffectingConvert></Warnings><MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0"></MemoryGrantInfo><OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="209702" EstimatedPagesCached="104851" EstimatedAvailableDegreeOfParallelism="4" MaxCompileMemory="2033360"></OptimizerHardwareDependentProperties><OptimizerStatsUsage><StatisticsInfo LastUpdate="2024-10-29T11:51:18.84" ModificationCount="587" SamplingPercent="100" Statistics="[NonClusteredIndex-20170625-124525]" Table="[WCloud_CustomerRelationShip]" Schema="[dbo]" Database="[WCloud]"></StatisticsInfo><StatisticsInfo LastUpdate="2024-11-06T16:30:20.43" ModificationCount="501" SamplingPercent="100" Statistics="[_WA_Sys_00000011_19DFD96B]" Table="[WCloud_CustomerRelationShip]" Schema="[dbo]" Database="[WCloud]"></StatisticsInfo><StatisticsInfo LastUpdate="2024-10-29T11:51:18.87" ModificationCount="587" SamplingPercent="100" Statistics="[_WA_Sys_00000017_19DFD96B]" Table="[WCloud_CustomerRelationShip]" Schema="[dbo]" Database="[WCloud]"></StatisticsInfo><StatisticsInfo LastUpdate="2024-11-06T16:30:20.44" ModificationCount="501" SamplingPercent="100" Statistics="[_WA_Sys_0000001B_19DFD96B]" Table="[WCloud_CustomerRelationShip]" Schema="[dbo]" Database="[WCloud]"></StatisticsInfo><StatisticsInfo LastUpdate="2024-10-29T11:51:18.82" ModificationCount="587" SamplingPercent="100" Statistics="[_WA_Sys_00000010_19DFD96B]" Table="[WCloud_CustomerRelationShip]" Schema="[dbo]" Database="[WCloud]"></StatisticsInfo><StatisticsInfo LastUpdate="2025-02-23T12:09:59.68" ModificationCount="283" SamplingPercent="100" Statistics="[NonClusteredIndex-20190426-144236]" Table="[WCloud_CustomerRelationShip]" Schema="[dbo]" Database="[WCloud]"></StatisticsInfo></OptimizerStatsUsage><RelOp NodeId="0" PhysicalOp="Top" LogicalOp="Top" EstimateRows="5.38322" EstimateIO="0" EstimateCPU="5.38322e-007" AvgRowSize="11" EstimatedTotalSubtreeCost="0.206484" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Database="[WCloud]" Schema="[dbo]" Table="[WCloud_CustomerRelationShip]" Column="CustomerId"></ColumnReference></OutputList><Top RowCount="0" IsPercent="0" WithTies="0"><TopExpression><ScalarOperator ScalarString="(200)"><Const ConstValue="(200)"></Const></ScalarOperator></TopExpression><RelOp NodeId="2" PhysicalOp="Clustered Index Scan" LogicalOp="Clustered Index Scan" EstimateRows="5.38322" EstimatedRowsRead="7828" EstimateIO="0.185347" EstimateCPU="0.0087678" AvgRowSize="62" EstimatedTotalSubtreeCost="0.194115" TableCardinality="7828" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row"><OutputList><ColumnReference Database="[WCloud]" Schema="[dbo]" Table="[WCloud_CustomerRelationShip]" Column="CustomerId"></ColumnReference></OutputList><IndexScan Ordered="0" ForcedIndex="0" ForceScan="0" NoExpandHint="0" Storage="RowStore"><DefinedValues><DefinedValue><ColumnReference Database="[WCloud]" Schema="[dbo]" Table="[WCloud_CustomerRelationShip]" Column="CustomerId"></ColumnReference></DefinedValue></DefinedValues><Object Database="[WCloud]" Schema="[dbo]" Table="[WCloud_CustomerRelationShip]" Index="[PK_WCLOUD_CUSTOMERRELATIONSHIP]" IndexKind="Clustered" Storage="RowStore"></Object><Predicate><ScalarOperator ScalarString="[WCloud].[dbo].[WCloud_CustomerRelationShip].[CreateDate]>dateadd(day,(-60),getdate()) AND [WCloud].[dbo].[WCloud_CustomerRelationShip].[Up]=(1) AND [WCloud].[dbo].[WCloud_CustomerRelationShip].[Channel] IS NULL AND CONVERT_IMPLICIT(int,[WCloud].[dbo].[WCloud_CustomerRelationShip].[DsId],0)=(100)"><Logical Operation="AND"><ScalarOperator><Compare CompareOp="GT"><ScalarOperator><Identifier><ColumnReference Database="[WCloud]" Schema="[dbo]" Table="[WCloud_CustomerRelationShip]" Column="CreateDate"></ColumnReference></Identifier></ScalarOperator><ScalarOperator><Identifier><ColumnReference Column="ConstExpr1002"><ScalarOperator><Intrinsic FunctionName="dateadd"><ScalarOperator><Const ConstValue="(4)"></Const></ScalarOperator><ScalarOperator><Const ConstValue="(-60)"></Const></ScalarOperator><ScalarOperator><Intrinsic FunctionName="getdate"></Intrinsic></ScalarOperator></Intrinsic></ScalarOperator></ColumnReference></Identifier></ScalarOperator></Compare></ScalarOperator><ScalarOperator><Compare CompareOp="EQ"><ScalarOperator><Identifier><ColumnReference Database="[WCloud]" Schema="[dbo]" Table="[WCloud_CustomerRelationShip]" Column="Up"></ColumnReference></Identifier></ScalarOperator><ScalarOperator><Const ConstValue="(1)"></Const></ScalarOperator></Compare></ScalarOperator><ScalarOperator><Compare CompareOp="IS"><ScalarOperator><Identifier><ColumnReference Database="[WCloud]" Schema="[dbo]" Table="[WCloud_CustomerRelationShip]" Column="Channel"></ColumnReference></Identifier></ScalarOperator><ScalarOperator><Const ConstValue="NULL"></Const></ScalarOperator></Compare></ScalarOperator><ScalarOperator><Compare CompareOp="EQ"><ScalarOperator><Convert DataType="int" Style="0" Implicit="1"><ScalarOperator><Identifier><ColumnReference Database="[WCloud]" Schema="[dbo]" Table="[WCloud_CustomerRelationShip]" Column="DsId"></ColumnReference></Identifier></ScalarOperator></Convert></ScalarOperator><ScalarOperator><Const ConstValue="(100)"></Const></ScalarOperator></Compare></ScalarOperator></Logical></ScalarOperator></Predicate></IndexScan></RelOp></Top></RelOp></QueryPlan></StmtSimpl帮我解析一下这个执行计划
最新发布
07-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值