Competition

博客介绍了三项信息技术相关竞赛,包括ACM、ITAT全国信息技术应用水平大赛和达内发现杯,为关注信息技术竞赛的人提供了相关信息。

1.ACM

2.ITAT全国信息技术应用水平大赛

3.达内发现杯

源码来自:https://pan.quark.cn/s/41b9d28f0d6d 在信息技术领域中,jQuery作为一个广受欢迎的JavaScript框架,显著简化了诸多操作,包括对HTML文档的遍历、事件的管理、动画的设计以及Ajax通信等。 本篇文档将深入阐释如何运用jQuery达成一个图片自动播放的功能,这种效果常用于网站的轮播展示或幻灯片演示,有助于优化用户与页面的互动,使网页呈现更加动态的视觉体验。 为了有效实施这一功能,首先需掌握jQuery的核心操作。 通过$符号作为接口,jQuery能够迅速选取DOM组件,例如$("#id")用于选取具有特定ID的元素,而$(".class")则能选取所有应用了某类class的元素。 在选定元素之后,可以执行多种行为,诸如事件监听、样式的变更、内容的更新以及动画的制作等。 关于“一个基于jQuery的图片自动播放功能”,首要任务是准备一组图片素材,这些素材将被整合至一个容器元素之中。 例如,可以构建一个div元素,将其宽度设定为单张图片的尺寸,再借助CSS实现溢出内容的隐藏,从而构建出水平滚动的初始框架。 ```html<div id="slider"> <img src="image1.jpg" alt="Image 1"> <img src="image2.jpg" alt="Image 2"> <!-- 更多图片内容... --></div>```接着,需要编写jQuery脚本以实现图片的自动切换。 这通常涉及到定时器的运用,以设定周期性间隔自动更换当前显示的图片。 通过使用`.fadeOut()`和`.fadeIn()`方法,能够实现图片间的平滑过渡,增强视觉效果。 ```javascript$(document).re...
<ShowPlanXML xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan" Build="13.0.6300.2" Version="1.518"> <BatchSequence> <Batch> <Statements> <StmtSimple CardinalityEstimationModelVersion="130" QueryHash="0xE17B4AE12942B1F0" QueryPlanHash="0xAF0F4149C354E2B4" RetrievedFromCache="true" SecurityPolicyApplied="false" StatementCompId="1" StatementEstRows="2.27494" StatementId="1" StatementOptmEarlyAbortReason="GoodEnoughPlanFound" StatementOptmLevel="FULL" StatementSubTreeCost="0.0336099" StatementText="SELECT c.id AS id, c.status AS status, c.measure_name AS measureName, c.access AS access, c.start_time AS startTime, c.end_time AS endTime, c.competition_result AS competitionResult, c.mode AS mode FROM WCloud.dbo.competition c WITH(NOLOCK) where 1=1 AND c.channel = 'BRANCH' AND ( c.status in ( 0 , 2 ) OR (c.status = 5 AND c.end_time >= '2025-08-05 14:47:36.833') OR (c.status = 1 AND c.create_time >= '2025-07-23 14:47:36.833') OR (c.status = 3 AND c.create_time >= '2025-07-23 14:47:36.833') OR (c.status = 4 AND c.create_time >= '2025-07-23 14:47:36.833') ) AND c.mode = 'Single' AND EXISTS ( SELECT 1 FROM WCloud.dbo.competition_contestant cc WITH(NOLOCK) WHERE cc.competition_id = c.id AND cc.dept_id = '201' ) ORDER BY CASE c.status WHEN 6 THEN 1 WHEN 2 THEN 2 WHEN 0 THEN 3 WHEN 5 THEN 4 WHEN 1 THEN 5 WHEN 3 THEN 6 WHEN 4 THEN 7 END ASC, c.end_time ASC, c.id ASC offset 0 row FETCH NEXT 10 ROWS ONLY" StatementType="SELECT"> <StatementSetOptions ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" ARITHABORT="false" CONCAT_NULL_YIELDS_NULL="true" NUMERIC_ROUNDABORT="false" QUOTED_IDENTIFIER="true"/> <QueryPlan CachedPlanSize="56" CompileCPU="10" CompileMemory="896" CompileTime="10" DegreeOfParallelism="1" MemoryGrant="1024"> <MemoryGrantInfo DesiredMemory="24" GrantWaitTime="0" GrantedMemory="1024" MaxQueryMemory="2154520" MaxUsedMemory="0" RequestedMemory="1024" RequiredMemory="16" SerialDesiredMemory="24" SerialRequiredMemory="16"/> <OptimizerHardwareDependentProperties EstimatedAvailableDegreeOfParallelism="4" EstimatedAvailableMemoryGrant="209702" EstimatedPagesCached="104851" MaxCompileMemory="6764488"/> <OptimizerStatsUsage> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-07-28T13:37:10.08" ModificationCount="233" SamplingPercent="100" Schema="[dbo]" Statistics="[_WA_Sys_00000002_0D2FE9C3]" Table="[competition]"/> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-08-01T11:53:27.55" ModificationCount="100" SamplingPercent="100" Schema="[dbo]" Statistics="[idx_status]" Table="[competition]"/> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-08-12T15:09:41.66" ModificationCount="0" SamplingPercent="100" Schema="[dbo]" Statistics="[idx_competition_id_dept_id]" Table="[competition_contestant]"/> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-07-28T13:37:08.60" ModificationCount="293" SamplingPercent="100" Schema="[dbo]" Statistics="[_WA_Sys_00000007_0D2FE9C3]" Table="[competition]"/> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-08-08T16:49:01.59" ModificationCount="0" SamplingPercent="100" Schema="[dbo]" Statistics="[_WA_Sys_0000000F_0D2FE9C3]" Table="[competition]"/> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-08-12T16:04:42.12" ModificationCount="0" SamplingPercent="100" Schema="[dbo]" Statistics="[idx_channel_status_create_time_end_time_mode]" Table="[competition]"/> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-07-28T13:37:08.58" ModificationCount="233" SamplingPercent="100" Schema="[dbo]" Statistics="[competition_PK]" Table="[competition]"/> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-07-31T09:16:21.64" ModificationCount="602" SamplingPercent="100" Schema="[dbo]" Statistics="[_WA_Sys_00000006_29CC2871]" Table="[competition_contestant]"/> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-07-30T09:09:19.82" ModificationCount="156" SamplingPercent="100" Schema="[dbo]" Statistics="[idx_digest]" Table="[competition]"/> <StatisticsInfo Database="[WCloud]" LastUpdate="2025-07-31T09:16:34.18" ModificationCount="602" SamplingPercent="100" Schema="[dbo]" Statistics="[idx_user_id]" Table="[competition_contestant]"/> </OptimizerStatsUsage> <QueryTimeStats CpuTime="0" ElapsedTime="0"/> <RelOp AvgRowSize="130" EstimateCPU="0.000104338" EstimateIO="0.0112613" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="2.27494" EstimatedExecutionMode="Row" EstimatedTotalSubtreeCost="0.0336099" LogicalOp="TopN Sort" NodeId="0" Parallel="0" PhysicalOp="Sort"> <OutputList> <ColumnReference Alias="[c]" Column="id" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="mode" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="measure_name" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="access" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="start_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="end_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="competition_result" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Column="Expr1003"/> </OutputList> <MemoryFractions Input="1" Output="1"/> <RunTimeInformation> <RunTimeCountersPerThread ActualCPUms="0" ActualElapsedms="0" ActualEndOfScans="1" ActualExecutionMode="Row" ActualExecutions="1" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualLogicalReads="0" ActualPhysicalReads="0" ActualReadAheads="0" ActualRebinds="1" ActualRewinds="0" ActualRows="0" ActualScans="0" Batches="0" InputMemoryGrant="1024" OutputMemoryGrant="1024" Thread="0" UsedMemoryGrant="0"/> </RunTimeInformation> <TopSort Distinct="0" Rows="10"> <OrderBy> <OrderByColumn Ascending="1"> <ColumnReference Column="Expr1003"/> </OrderByColumn> <OrderByColumn Ascending="1"> <ColumnReference Alias="[c]" Column="end_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </OrderByColumn> <OrderByColumn Ascending="1"> <ColumnReference Alias="[c]" Column="id" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </OrderByColumn> </OrderBy> <RelOp AvgRowSize="130" EstimateCPU="8.56397e-005" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="2.27494" EstimatedExecutionMode="Row" EstimatedTotalSubtreeCost="0.0222443" LogicalOp="Left Semi Join" NodeId="1" Parallel="0" PhysicalOp="Nested Loops"> <OutputList> <ColumnReference Alias="[c]" Column="id" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="mode" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="measure_name" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="access" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="start_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="end_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="competition_result" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Column="Expr1003"/> </OutputList> <RunTimeInformation> <RunTimeCountersPerThread ActualCPUms="0" ActualElapsedms="0" ActualEndOfScans="1" ActualExecutionMode="Row" ActualExecutions="1" ActualRows="0" Batches="0" Thread="0"/> </RunTimeInformation> <NestedLoops Optimized="0"> <OuterReferences> <ColumnReference Alias="[c]" Column="id" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </OuterReferences> <RelOp AvgRowSize="130" EstimateCPU="2.0488e-006" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="20.488" EstimatedExecutionMode="Row" EstimatedTotalSubtreeCost="0.00349643" LogicalOp="Compute Scalar" NodeId="2" Parallel="0" PhysicalOp="Compute Scalar"> <OutputList> <ColumnReference Alias="[c]" Column="id" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="mode" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="measure_name" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="access" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="start_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="end_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="competition_result" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Column="Expr1003"/> </OutputList> <ComputeScalar> <DefinedValues> <DefinedValue> <ColumnReference Column="Expr1003"/> <ScalarOperator ScalarString="CASE WHEN [WCloud].[dbo].[competition].[status] as [c].[status]=(6) THEN (1) ELSE CASE WHEN [WCloud].[dbo].[competition].[status] as [c].[status]=(2) THEN (2) ELSE CASE WHEN [WCloud].[dbo].[competition].[status] as [c].[status]=(0) THEN (3) ELSE CASE WHEN [WCloud].[dbo].[competition].[status] as [c].[status]=(5) THEN (4) ELSE CASE WHEN [WCloud].[dbo].[competition].[status] as [c].[status]=(1) THEN (5) ELSE CASE WHEN [WCloud].[dbo].[competition].[status] as [c].[status]=(3) THEN (6) ELSE CASE WHEN [WCloud].[dbo].[competition].[status] as [c].[status]=(4) THEN (7) ELSE NULL END END END END END END END"> <IF> <Condition> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(6)"/> </ScalarOperator> </Compare> </ScalarOperator> </Condition> <Then> <ScalarOperator> <Const ConstValue="(1)"/> </ScalarOperator> </Then> <Else> <ScalarOperator> <IF> <Condition> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(2)"/> </ScalarOperator> </Compare> </ScalarOperator> </Condition> <Then> <ScalarOperator> <Const ConstValue="(2)"/> </ScalarOperator> </Then> <Else> <ScalarOperator> <IF> <Condition> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(0)"/> </ScalarOperator> </Compare> </ScalarOperator> </Condition> <Then> <ScalarOperator> <Const ConstValue="(3)"/> </ScalarOperator> </Then> <Else> <ScalarOperator> <IF> <Condition> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(5)"/> </ScalarOperator> </Compare> </ScalarOperator> </Condition> <Then> <ScalarOperator> <Const ConstValue="(4)"/> </ScalarOperator> </Then> <Else> <ScalarOperator> <IF> <Condition> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(1)"/> </ScalarOperator> </Compare> </ScalarOperator> </Condition> <Then> <ScalarOperator> <Const ConstValue="(5)"/> </ScalarOperator> </Then> <Else> <ScalarOperator> <IF> <Condition> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(3)"/> </ScalarOperator> </Compare> </ScalarOperator> </Condition> <Then> <ScalarOperator> <Const ConstValue="(6)"/> </ScalarOperator> </Then> <Else> <ScalarOperator> <IF> <Condition> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(4)"/> </ScalarOperator> </Compare> </ScalarOperator> </Condition> <Then> <ScalarOperator> <Const ConstValue="(7)"/> </ScalarOperator> </Then> <Else> <ScalarOperator> <Const ConstValue="NULL"/> </ScalarOperator> </Else> </IF> </ScalarOperator> </Else> </IF> </ScalarOperator> </Else> </IF> </ScalarOperator> </Else> </IF> </ScalarOperator> </Else> </IF> </ScalarOperator> </Else> </IF> </ScalarOperator> </Else> </IF> </ScalarOperator> </DefinedValue> </DefinedValues> <RelOp AvgRowSize="134" EstimateCPU="0.0002021" EstimateIO="0.003125" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="20.488" EstimatedExecutionMode="Row" EstimatedRowsRead="41" EstimatedTotalSubtreeCost="0.0033271" LogicalOp="Index Seek" NodeId="3" Parallel="0" PhysicalOp="Index Seek" TableCardinality="249"> <OutputList> <ColumnReference Alias="[c]" Column="id" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="mode" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="measure_name" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="access" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="start_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="end_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> <ColumnReference Alias="[c]" Column="competition_result" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </OutputList> <RunTimeInformation> <RunTimeCountersPerThread ActualCPUms="0" ActualElapsedms="0" ActualEndOfScans="1" ActualExecutionMode="Row" ActualExecutions="1" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualLogicalReads="2" ActualPhysicalReads="0" ActualReadAheads="0" ActualRows="16" ActualRowsRead="41" ActualScans="1" Batches="0" Thread="0"/> </RunTimeInformation> <IndexScan ForceScan="0" ForceSeek="0" ForcedIndex="0" NoExpandHint="0" Ordered="1" ScanDirection="FORWARD" Storage="RowStore"> <DefinedValues> <DefinedValue> <ColumnReference Alias="[c]" Column="id" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </DefinedValue> <DefinedValue> <ColumnReference Alias="[c]" Column="mode" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </DefinedValue> <DefinedValue> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </DefinedValue> <DefinedValue> <ColumnReference Alias="[c]" Column="measure_name" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </DefinedValue> <DefinedValue> <ColumnReference Alias="[c]" Column="access" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </DefinedValue> <DefinedValue> <ColumnReference Alias="[c]" Column="start_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </DefinedValue> <DefinedValue> <ColumnReference Alias="[c]" Column="end_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </DefinedValue> <DefinedValue> <ColumnReference Alias="[c]" Column="competition_result" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </DefinedValue> </DefinedValues> <Object Alias="[c]" Database="[WCloud]" Index="[idx_channel_status_create_time_end_time_mode]" IndexKind="NonClustered" Schema="[dbo]" Storage="RowStore" Table="[competition]"/> <SeekPredicates> <SeekPredicateNew> <SeekKeys> <Prefix ScanType="EQ"> <RangeColumns> <ColumnReference Alias="[c]" Column="channel" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </RangeColumns> <RangeExpressions> <ScalarOperator ScalarString="'BRANCH'"> <Const ConstValue="'BRANCH'"/> </ScalarOperator> </RangeExpressions> </Prefix> </SeekKeys> </SeekPredicateNew> </SeekPredicates> <Predicate> <ScalarOperator ScalarString="[WCloud].[dbo].[competition].[mode] as [c].[mode]='Single' AND ([WCloud].[dbo].[competition].[status] as [c].[status]=(2) OR [WCloud].[dbo].[competition].[status] as [c].[status]=(0) OR [WCloud].[dbo].[competition].[status] as [c].[status]=(5) AND [WCloud].[dbo].[competition].[end_time] as [c].[end_time]>='2025-08-05 14:47:36.833' OR [WCloud].[dbo].[competition].[status] as [c].[status]=(1) AND [WCloud].[dbo].[competition].[create_time] as [c].[create_time]>='2025-07-23 14:47:36.833' OR [WCloud].[dbo].[competition].[status] as [c].[status]=(3) AND [WCloud].[dbo].[competition].[create_time] as [c].[create_time]>='2025-07-23 14:47:36.833' OR [WCloud].[dbo].[competition].[status] as [c].[status]=(4) AND [WCloud].[dbo].[competition].[create_time] as [c].[create_time]>='2025-07-23 14:47:36.833')"> <Logical Operation="AND"> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="mode" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="'Single'"/> </ScalarOperator> </Compare> </ScalarOperator> <ScalarOperator> <Logical Operation="OR"> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(2)"/> </ScalarOperator> </Compare> </ScalarOperator> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(0)"/> </ScalarOperator> </Compare> </ScalarOperator> <ScalarOperator> <Logical Operation="AND"> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(5)"/> </ScalarOperator> </Compare> </ScalarOperator> <ScalarOperator> <Compare CompareOp="GE"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="end_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="'2025-08-05 14:47:36.833'"/> </ScalarOperator> </Compare> </ScalarOperator> </Logical> </ScalarOperator> <ScalarOperator> <Logical Operation="AND"> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(1)"/> </ScalarOperator> </Compare> </ScalarOperator> <ScalarOperator> <Compare CompareOp="GE"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="create_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="'2025-07-23 14:47:36.833'"/> </ScalarOperator> </Compare> </ScalarOperator> </Logical> </ScalarOperator> <ScalarOperator> <Logical Operation="AND"> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(3)"/> </ScalarOperator> </Compare> </ScalarOperator> <ScalarOperator> <Compare CompareOp="GE"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="create_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="'2025-07-23 14:47:36.833'"/> </ScalarOperator> </Compare> </ScalarOperator> </Logical> </ScalarOperator> <ScalarOperator> <Logical Operation="AND"> <ScalarOperator> <Compare CompareOp="EQ"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="status" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="(4)"/> </ScalarOperator> </Compare> </ScalarOperator> <ScalarOperator> <Compare CompareOp="GE"> <ScalarOperator> <Identifier> <ColumnReference Alias="[c]" Column="create_time" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator> <Const ConstValue="'2025-07-23 14:47:36.833'"/> </ScalarOperator> </Compare> </ScalarOperator> </Logical> </ScalarOperator> </Logical> </ScalarOperator> </Logical> </ScalarOperator> </Predicate> </IndexScan> </RelOp> </ComputeScalar> </RelOp> <RelOp AvgRowSize="9" EstimateCPU="0.0001581" EstimateIO="0.003125" EstimateRebinds="19.488" EstimateRewinds="0" EstimateRows="1" EstimatedExecutionMode="Row" EstimatedRowsRead="1" EstimatedTotalSubtreeCost="0.0186622" LogicalOp="Index Seek" NodeId="4" Parallel="0" PhysicalOp="Index Seek" TableCardinality="1362"> <OutputList/> <RunTimeInformation> <RunTimeCountersPerThread ActualCPUms="0" ActualElapsedms="0" ActualEndOfScans="16" ActualExecutionMode="Row" ActualExecutions="16" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" ActualLogicalReads="32" ActualPhysicalReads="0" ActualReadAheads="0" ActualRows="0" ActualScans="16" Batches="0" Thread="0"/> </RunTimeInformation> <IndexScan ForceScan="0" ForceSeek="0" ForcedIndex="0" NoExpandHint="0" Ordered="1" ScanDirection="FORWARD" Storage="RowStore"> <DefinedValues/> <Object Alias="[cc]" Database="[WCloud]" Index="[idx_competition_id_dept_id]" IndexKind="NonClustered" Schema="[dbo]" Storage="RowStore" Table="[competition_contestant]"/> <SeekPredicates> <SeekPredicateNew> <SeekKeys> <Prefix ScanType="EQ"> <RangeColumns> <ColumnReference Alias="[cc]" Column="competition_id" Database="[WCloud]" Schema="[dbo]" Table="[competition_contestant]"/> <ColumnReference Alias="[cc]" Column="dept_id" Database="[WCloud]" Schema="[dbo]" Table="[competition_contestant]"/> </RangeColumns> <RangeExpressions> <ScalarOperator ScalarString="[WCloud].[dbo].[competition].[id] as [c].[id]"> <Identifier> <ColumnReference Alias="[c]" Column="id" Database="[WCloud]" Schema="[dbo]" Table="[competition]"/> </Identifier> </ScalarOperator> <ScalarOperator ScalarString="'201'"> <Const ConstValue="'201'"/> </ScalarOperator> </RangeExpressions> </Prefix> </SeekKeys> </SeekPredicateNew> </SeekPredicates> </IndexScan> </RelOp> </NestedLoops> </RelOp> </TopSort> </RelOp> </QueryPlan> </StmtSimple> </Statements> </Batch> </BatchSequence> </ShowPlanXML> 帮我分析这段执行计划
08-13
这段 XML 是 SQL Server 生成的 **查询执行计划(Query Execution Plan)**,它详细描述了 SQL 查询在数据库引擎内部是如何执行的,包括使用的索引、连接方式、排序操作、资源消耗等信息。 我们来逐步分析这个执行计划: --- ## 🔍 **整体查询结构分析** ```sql SELECT c.id AS id, c.status AS status, c.measure_name AS measureName, c.access AS access, c.start_time AS startTime, c.end_time AS endTime, c.competition_result AS competitionResult, c.mode AS mode FROM WCloud.dbo.competition c WITH(NOLOCK) WHERE c.channel = 'BRANCH' AND ( c.status IN (0, 2) OR (c.status = 5 AND c.end_time >= '2025-08-05 14:47:36.833') OR (c.status = 1 AND c.create_time >= '2025-07-23 14:47:36.833') OR (c.status = 3 AND c.create_time >= '2025-07-23 14:47:36.833') OR (c.status = 4 AND c.create_time >= '2025-07-23 14:47:36.833') ) AND c.mode = 'Single' AND EXISTS ( SELECT 1 FROM WCloud.dbo.competition_contestant cc WITH(NOLOCK) WHERE cc.competition_id = c.id AND cc.dept_id = '201' ) ORDER BY CASE c.status WHEN 6 THEN 1 WHEN 2 THEN 2 WHEN 0 THEN 3 WHEN 5 THEN 4 WHEN 1 THEN 5 WHEN 3 THEN 6 WHEN 4 THEN 7 END ASC, c.end_time ASC, c.id ASC OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY ``` 这是一个带有复杂条件的查询,并使用了 `EXISTS` 子句来关联 `competition` 和 `competition_contestant` 表,最终还使用了排序和分页(OFFSET FETCH)。 --- ## 📈 **执行计划结构分析** ### 1️⃣ **最外层:TopN Sort** - **逻辑操作**: `TopN Sort` - **物理操作**: `Sort` - **作用**: 对结果进行排序并取前10条。 - **开销**: `EstimatedTotalSubtreeCost="0.0336099"` - **输出列**: 所有需要的列,包括 `id`, `status`, `measure_name` 等。 ### 2️⃣ **中间层:Left Semi Join** - **逻辑操作**: `Left Semi Join` - **物理操作**: `Nested Loops` - **作用**: 实现 `EXISTS (SELECT 1 FROM competition_contestant WHERE competition_id = c.id AND dept_id = '201')` - **优化点**: 使用嵌套循环连接(Nested Loop Join),每次从 `competition` 表取一行,然后去 `competition_contestant` 表查找匹配行。 ### 3️⃣ **内层:Index Seek on competition** - **逻辑操作**: `Index Seek` - **物理操作**: `Index Seek` - **索引**: `idx_channel_status_create_time_end_time_mode` - **作用**: 根据 `WHERE` 条件进行高效索引查找。 - **查找条件**: - `c.channel = 'BRANCH'` - 多种 `status` + 时间条件 - `c.mode = 'Single'` ### 4️⃣ **内层嵌套:Index Seek on competition_contestant** - **逻辑操作**: `Index Seek` - **物理操作**: `Index Seek` - **索引**: `idx_competition_id_dept_id` - **作用**: 用于 `EXISTS` 子句的关联条件: - `cc.competition_id = c.id` - `cc.dept_id = '201'` --- ## 🧠 **关键性能点分析** | 操作 | 类型 | 性能表现 | 说明 | |------|------|----------|------| | `Index Seek` on `competition` | 高效 | ✅ | 使用了复合索引 `idx_channel_status_create_time_end_time_mode` | | `Index Seek` on `competition_contestant` | 高效 | ✅ | 使用了复合索引 `idx_competition_id_dept_id` | | `Nested Loops Join` | 中等 | ⚠️ | 适用于小数据量连接,若外层数据量大,性能可能下降 | | `Sort` | 高 | ❗ | 使用了内存排序,当前 `UsedMemoryGrant="0"` 表示排序数据量小 | --- ## 📊 **统计数据** - **预估行数**: `EstimateRows="2.27494"`,但实际 `ActualRows="0"`,可能数据为空或过滤条件太严格。 - **实际执行次数**: `ActualExecutions="1"`,正常。 - **读取次数**: `ActualLogicalReads="2"`(competition)+ `32`(competition_contestant)= `34`,读取量小,性能良好。 --- ## ✅ **优化建议** 1. **确认数据是否存在**:实际返回 `0` 行,检查查询条件是否太严格。 2. **索引检查**: - 确保 `idx_channel_status_create_time_end_time_mode` 和 `idx_competition_id_dept_id` 索引是最新的。 - 考虑是否可以将 `mode` 提前到索引前列以提高过滤效率。 3. **避免不必要的 `CASE` 排序**: - 如果 `status` 排序是固定规则,可以考虑在表中加一个排序字段,减少运行时计算。 4. **避免使用 `WITH(NOLOCK)`**: - 虽然可以提升读取速度,但会引入脏读问题,建议在必要时使用。 5. **分页优化**: - 如果分页较深(如 `OFFSET 1000 ROWS`),考虑使用 `WHERE id > @last_id` 的方式代替 `OFFSET FETCH`。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值