首页 > 解决方案 > 为什么根本不使用由查询计划中的提示插入的新索引?

问题描述

简而言之:我创建了一个由查询计划中的提示推荐的新索引。但它在创建后不使用。为什么?

我使用 Microsoft SQL Server 14.0.3401.7。

我有一个简单的查询:

SELECT COUNT(*) FROM [viewAS0003_PJ0003] AS _tbl_

视图定义为

CREATE VIEW [dbo].[viewAS0003_PJ0003] AS 
  SELECT p.* FROM [tblAS0003_PJ0003] AS p 
  JOIN [tblAS0003] AS a ON a.[Id]=p.[IdAddress] WHERE p.[IdUserDelete] IS NULL AND a.[IdUserDelete] IS NULL

索引定义为:

CREATE INDEX [idxAS0003_000058] ON [dbo].[tblAS0003] ([IdUserDelete] ASC)
CREATE INDEX [idxAS0003_PJ0003_001002] ON [dbo].[tblAS0003_PJ0003]  ([IdAddress] ASC) INCLUDE([IdUserDelete])   
CREATE INDEX [idxAS0003_PJ0003_001021] ON [dbo].[tblAS0003_PJ0003] ([IdUserDelete] ASC)

查询计划显示:

<?xml version="1.0" encoding="utf-16"?>
<ShowPlanXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.481" Build="14.0.3401.7" xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan">
  <BatchSequence>
    <Batch>
      <Statements>
    <StmtSimple StatementCompId="1" StatementEstRows="1" StatementId="1" StatementOptmLevel="FULL" StatementOptmEarlyAbortReason="GoodEnoughPlanFound" CardinalityEstimationModelVersion="140" StatementSubTreeCost="0.674259" StatementText="SELECT COUNT(*) FROM [viewAS0003_PJ0003] AS _tbl_" StatementType="SELECT" QueryHash="0x6C6609E0F75DADC3" QueryPlanHash="0x3E3661E36DB25D4C" RetrievedFromCache="true" SecurityPolicyApplied="false">
      <StatementSetOptions ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" ARITHABORT="true" CONCAT_NULL_YIELDS_NULL="true" NUMERIC_ROUNDABORT="false" QUOTED_IDENTIFIER="true" />
      <QueryPlan DegreeOfParallelism="1" CachedPlanSize="32" CompileTime="11" CompileCPU="11" CompileMemory="584">
        <MissingIndexes>
          <MissingIndexGroup Impact="34.0898">
        <MissingIndex Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]">
          <ColumnGroup Usage="EQUALITY">
            <Column Name="[IdUserDelete]" ColumnId="42" />
          </ColumnGroup>
          <ColumnGroup Usage="INCLUDE">
            <Column Name="[IdAddress]" ColumnId="2" />
          </ColumnGroup>
        </MissingIndex>
          </MissingIndexGroup>
        </MissingIndexes>
        <MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0" />
        <OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="209715" EstimatedPagesCached="52428" EstimatedAvailableDegreeOfParallelism="2" MaxCompileMemory="2518336" />
        <QueryTimeStats CpuTime="54" ElapsedTime="54" />
        <RelOp AvgRowSize="11" EstimateCPU="0" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="1" LogicalOp="Compute Scalar" NodeId="0" Parallel="false" PhysicalOp="Compute Scalar" EstimatedTotalSubtreeCost="0.674259">
          <OutputList>
        <ColumnReference Column="Expr1002" />
          </OutputList>
          <ComputeScalar>
        <DefinedValues>
          <DefinedValue>
            <ColumnReference Column="Expr1002" />
            <ScalarOperator ScalarString="CONVERT_IMPLICIT(int,[Expr1005],0)">
              <Convert DataType="int" Style="0" Implicit="true">
            <ScalarOperator>
              <Identifier>
                <ColumnReference Column="Expr1005" />
              </Identifier>
            </ScalarOperator>
              </Convert>
            </ScalarOperator>
          </DefinedValue>
        </DefinedValues>
        <RelOp AvgRowSize="11" EstimateCPU="0.0176833" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="1" LogicalOp="Aggregate" NodeId="1" Parallel="false" PhysicalOp="Stream Aggregate" EstimatedTotalSubtreeCost="0.674259">
          <OutputList>
            <ColumnReference Column="Expr1005" />
          </OutputList>
          <RunTimeInformation>
            <RunTimeCountersPerThread Thread="0" ActualRows="1" Batches="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row" ActualElapsedms="54" ActualCPUms="54" />
          </RunTimeInformation>
          <StreamAggregate>
            <DefinedValues>
              <DefinedValue>
            <ColumnReference Column="Expr1005" />
            <ScalarOperator ScalarString="Count(*)">
              <Aggregate AggType="countstar" Distinct="false" />
            </ScalarOperator>
              </DefinedValue>
            </DefinedValues>
            <RelOp AvgRowSize="9" EstimateCPU="0.230984" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="29471.3" LogicalOp="Inner Join" NodeId="2" Parallel="false" PhysicalOp="Merge Join" EstimatedTotalSubtreeCost="0.656576">
              <OutputList />
              <RunTimeInformation>
            <RunTimeCountersPerThread Thread="0" ActualRows="48538" Batches="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row" ActualElapsedms="50" ActualCPUms="50" ActualScans="0" ActualLogicalReads="0" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" />
              </RunTimeInformation>
              <Merge ManyToMany="false">
            <InnerSideJoinColumns>
              <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdAddress" />
            </InnerSideJoinColumns>
            <OuterSideJoinColumns>
              <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="Id" />
            </OuterSideJoinColumns>
            <Residual>
              <ScalarOperator ScalarString="[Grutzeck-AGVIP].[dbo].[tblAS0003_PJ0003].[IdAddress] as [p].[IdAddress]=[Grutzeck-AGVIP].[dbo].[tblAS0003].[Id] as [a].[Id]">
                <Compare CompareOp="EQ">
                  <ScalarOperator>
                <Identifier>
                  <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdAddress" />
                </Identifier>
                  </ScalarOperator>
                  <ScalarOperator>
                <Identifier>
                  <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="Id" />
                </Identifier>
                  </ScalarOperator>
                </Compare>
              </ScalarOperator>
            </Residual>
            <RelOp AvgRowSize="11" EstimateCPU="0.0511395" EstimateIO="0.0925812" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="46347.8" EstimatedRowsRead="46347.8" LogicalOp="Index Seek" NodeId="3" Parallel="false" PhysicalOp="Index Seek" EstimatedTotalSubtreeCost="0.143721" TableCardinality="55572">
              <OutputList>
                <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="Id" />
              </OutputList>
              <RunTimeInformation>
                <RunTimeCountersPerThread Thread="0" ActualRows="40628" ActualRowsRead="40628" Batches="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row" ActualElapsedms="12" ActualCPUms="12" ActualScans="1" ActualLogicalReads="103" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" />
              </RunTimeInformation>
              <IndexScan Ordered="true" ScanDirection="FORWARD" ForcedIndex="false" ForceSeek="false" ForceScan="false" NoExpandHint="false" Storage="RowStore">
                <DefinedValues>
                  <DefinedValue>
                <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="Id" />
                  </DefinedValue>
                </DefinedValues>
                <Object Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Index="[idxAS0003_000058]" Alias="[a]" IndexKind="NonClustered" Storage="RowStore" />
                <SeekPredicates>
                  <SeekPredicateNew>
                <SeekKeys>
                  <Prefix ScanType="EQ">
                    <RangeColumns>
                      <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="IdUserDelete" />
                    </RangeColumns>
                    <RangeExpressions>
                      <ScalarOperator ScalarString="NULL">
                    <Const ConstValue="NULL" />
                      </ScalarOperator>
                    </RangeExpressions>
                  </Prefix>
                </SeekKeys>
                  </SeekPredicateNew>
                </SeekPredicates>
              </IndexScan>
            </RelOp>
            <RelOp AvgRowSize="15" EstimateCPU="0.0656983" EstimateIO="0.187569" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="59574.7" EstimatedRowsRead="59583" LogicalOp="Index Scan" NodeId="4" Parallel="false" PhysicalOp="Index Scan" EstimatedTotalSubtreeCost="0.253268" TableCardinality="59583">
              <OutputList>
                <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdAddress" />
              </OutputList>
              <RunTimeInformation>
                <RunTimeCountersPerThread Thread="0" ActualRows="59335" ActualRowsRead="59583" Batches="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row" ActualElapsedms="21" ActualCPUms="20" ActualScans="1" ActualLogicalReads="252" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" />
              </RunTimeInformation>
              <IndexScan Ordered="true" ScanDirection="FORWARD" ForcedIndex="false" ForceSeek="false" ForceScan="false" NoExpandHint="false" Storage="RowStore">
                <DefinedValues>
                  <DefinedValue>
                <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdAddress" />
                  </DefinedValue>
                </DefinedValues>
                <Object Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Index="[idxAS0003_PJ0003_001002]" Alias="[p]" IndexKind="NonClustered" Storage="RowStore" />
                <Predicate>
                  <ScalarOperator ScalarString="[Grutzeck-AGVIP].[dbo].[tblAS0003_PJ0003].[IdUserDelete] as [p].[IdUserDelete] IS NULL">
                <Compare CompareOp="IS">
                  <ScalarOperator>
                    <Identifier>
                      <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdUserDelete" />
                    </Identifier>
                  </ScalarOperator>
                  <ScalarOperator>
                    <Const ConstValue="NULL" />
                  </ScalarOperator>
                </Compare>
                  </ScalarOperator>
                </Predicate>
              </IndexScan>
            </RelOp>
              </Merge>
            </RelOp>
          </StreamAggregate>
        </RelOp>
          </ComputeScalar>
        </RelOp>
      </QueryPlan>
    </StmtSimple>
      </Statements>
    </Batch>
  </BatchSequence>
</ShowPlanXML>

现在我创建新的所需索引。

CREATE INDEX idxTest ON [dbo].[tblAS0003_PJ0003] ([IdUserDelete])   INCLUDE ([IdAddress])

执行后:

CHECKPOINT;
GO
DBCC DROPCLEANBUFFERS;
GO

我重复查询。现在查询计划显示如下:

<?xml version="1.0" encoding="utf-16"?>
<ShowPlanXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.481" Build="14.0.3401.7" xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan">
  <BatchSequence>
    <Batch>
      <Statements>
    <StmtSimple StatementCompId="1" StatementEstRows="1" StatementId="1" StatementOptmLevel="FULL" StatementOptmEarlyAbortReason="GoodEnoughPlanFound" CardinalityEstimationModelVersion="140" StatementSubTreeCost="0.673673" StatementText="SELECT COUNT(*) FROM [viewAS0003_PJ0003] AS _tbl_" StatementType="SELECT" QueryHash="0x6C6609E0F75DADC3" QueryPlanHash="0x3E3661E36DB25D4C" RetrievedFromCache="true" SecurityPolicyApplied="false">
      <StatementSetOptions ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" ARITHABORT="true" CONCAT_NULL_YIELDS_NULL="true" NUMERIC_ROUNDABORT="false" QUOTED_IDENTIFIER="true" />
      <QueryPlan DegreeOfParallelism="1" CachedPlanSize="40" CompileTime="16" CompileCPU="13" CompileMemory="584">
        <MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0" />
        <OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="209715" EstimatedPagesCached="52428" EstimatedAvailableDegreeOfParallelism="2" MaxCompileMemory="2467808" />
        <WaitStats>
          <Wait WaitType="PAGEIOLATCH_SH" WaitTimeMs="2" WaitCount="3" />
          <Wait WaitType="SOS_SCHEDULER_YIELD" WaitTimeMs="38" WaitCount="12" />
        </WaitStats>
        <QueryTimeStats CpuTime="54" ElapsedTime="94" />
        <RelOp AvgRowSize="11" EstimateCPU="0" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="1" LogicalOp="Compute Scalar" NodeId="0" Parallel="false" PhysicalOp="Compute Scalar" EstimatedTotalSubtreeCost="0.673673">
          <OutputList>
        <ColumnReference Column="Expr1002" />
          </OutputList>
          <ComputeScalar>
        <DefinedValues>
          <DefinedValue>
            <ColumnReference Column="Expr1002" />
            <ScalarOperator ScalarString="CONVERT_IMPLICIT(int,[Expr1005],0)">
              <Convert DataType="int" Style="0" Implicit="true">
            <ScalarOperator>
              <Identifier>
                <ColumnReference Column="Expr1005" />
              </Identifier>
            </ScalarOperator>
              </Convert>
            </ScalarOperator>
          </DefinedValue>
        </DefinedValues>
        <RelOp AvgRowSize="11" EstimateCPU="0.0176121" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="1" LogicalOp="Aggregate" NodeId="1" Parallel="false" PhysicalOp="Stream Aggregate" EstimatedTotalSubtreeCost="0.673673">
          <OutputList>
            <ColumnReference Column="Expr1005" />
          </OutputList>
          <RunTimeInformation>
            <RunTimeCountersPerThread Thread="0" ActualRows="1" Batches="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row" ActualElapsedms="94" ActualCPUms="54" />
          </RunTimeInformation>
          <StreamAggregate>
            <DefinedValues>
              <DefinedValue>
            <ColumnReference Column="Expr1005" />
            <ScalarOperator ScalarString="Count(*)">
              <Aggregate AggType="countstar" Distinct="false" />
            </ScalarOperator>
              </DefinedValue>
            </DefinedValues>
            <RelOp AvgRowSize="9" EstimateCPU="0.230469" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="29352.7" LogicalOp="Inner Join" NodeId="2" Parallel="false" PhysicalOp="Merge Join" EstimatedTotalSubtreeCost="0.65606">
              <OutputList />
              <RunTimeInformation>
            <RunTimeCountersPerThread Thread="0" ActualRows="48538" Batches="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row" ActualElapsedms="90" ActualCPUms="50" ActualScans="0" ActualLogicalReads="0" ActualPhysicalReads="0" ActualReadAheads="0" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" />
              </RunTimeInformation>
              <Merge ManyToMany="false">
            <InnerSideJoinColumns>
              <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdAddress" />
            </InnerSideJoinColumns>
            <OuterSideJoinColumns>
              <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="Id" />
            </OuterSideJoinColumns>
            <Residual>
              <ScalarOperator ScalarString="[Grutzeck-AGVIP].[dbo].[tblAS0003_PJ0003].[IdAddress] as [p].[IdAddress]=[Grutzeck-AGVIP].[dbo].[tblAS0003].[Id] as [a].[Id]">
                <Compare CompareOp="EQ">
                  <ScalarOperator>
                <Identifier>
                  <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdAddress" />
                </Identifier>
                  </ScalarOperator>
                  <ScalarOperator>
                <Identifier>
                  <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="Id" />
                </Identifier>
                  </ScalarOperator>
                </Compare>
              </ScalarOperator>
            </Residual>
            <RelOp AvgRowSize="11" EstimateCPU="0.0511395" EstimateIO="0.0925812" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="46347.8" EstimatedRowsRead="46347.8" LogicalOp="Index Seek" NodeId="3" Parallel="false" PhysicalOp="Index Seek" EstimatedTotalSubtreeCost="0.143721" TableCardinality="55572">
              <OutputList>
                <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="Id" />
              </OutputList>
              <RunTimeInformation>
                <RunTimeCountersPerThread Thread="0" ActualRows="40628" ActualRowsRead="40628" Batches="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row" ActualElapsedms="26" ActualCPUms="11" ActualScans="1" ActualLogicalReads="103" ActualPhysicalReads="1" ActualReadAheads="101" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" />
              </RunTimeInformation>
              <IndexScan Ordered="true" ScanDirection="FORWARD" ForcedIndex="false" ForceSeek="false" ForceScan="false" NoExpandHint="false" Storage="RowStore">
                <DefinedValues>
                  <DefinedValue>
                <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="Id" />
                  </DefinedValue>
                </DefinedValues>
                <Object Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Index="[idxAS0003_000058]" Alias="[a]" IndexKind="NonClustered" Storage="RowStore" />
                <SeekPredicates>
                  <SeekPredicateNew>
                <SeekKeys>
                  <Prefix ScanType="EQ">
                    <RangeColumns>
                      <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003]" Alias="[a]" Column="IdUserDelete" />
                    </RangeColumns>
                    <RangeExpressions>
                      <ScalarOperator ScalarString="NULL">
                    <Const ConstValue="NULL" />
                      </ScalarOperator>
                    </RangeExpressions>
                  </Prefix>
                </SeekKeys>
                  </SeekPredicateNew>
                </SeekPredicates>
              </IndexScan>
            </RelOp>
            <RelOp AvgRowSize="15" EstimateCPU="0.0656983" EstimateIO="0.187569" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="59335" EstimatedRowsRead="59583" LogicalOp="Index Scan" NodeId="4" Parallel="false" PhysicalOp="Index Scan" EstimatedTotalSubtreeCost="0.253268" TableCardinality="59583">
              <OutputList>
                <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdAddress" />
              </OutputList>
              <RunTimeInformation>
                <RunTimeCountersPerThread Thread="0" ActualRows="59335" ActualRowsRead="59583" Batches="0" ActualEndOfScans="1" ActualExecutions="1" ActualExecutionMode="Row" ActualElapsedms="48" ActualCPUms="22" ActualScans="1" ActualLogicalReads="252" ActualPhysicalReads="0" ActualReadAheads="249" ActualLobLogicalReads="0" ActualLobPhysicalReads="0" ActualLobReadAheads="0" />
              </RunTimeInformation>
              <IndexScan Ordered="true" ScanDirection="FORWARD" ForcedIndex="false" ForceSeek="false" ForceScan="false" NoExpandHint="false" Storage="RowStore">
                <DefinedValues>
                  <DefinedValue>
                <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdAddress" />
                  </DefinedValue>
                </DefinedValues>
                <Object Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Index="[idxAS0003_PJ0003_001002]" Alias="[p]" IndexKind="NonClustered" Storage="RowStore" />
                <Predicate>
                  <ScalarOperator ScalarString="[Grutzeck-AGVIP].[dbo].[tblAS0003_PJ0003].[IdUserDelete] as [p].[IdUserDelete] IS NULL">
                <Compare CompareOp="IS">
                  <ScalarOperator>
                    <Identifier>
                      <ColumnReference Database="[Grutzeck-AGVIP]" Schema="[dbo]" Table="[tblAS0003_PJ0003]" Alias="[p]" Column="IdUserDelete" />
                    </Identifier>
                  </ScalarOperator>
                  <ScalarOperator>
                    <Const ConstValue="NULL" />
                  </ScalarOperator>
                </Compare>
                  </ScalarOperator>
                </Predicate>
              </IndexScan>
            </RelOp>
              </Merge>
            </RelOp>
          </StreamAggregate>
        </RelOp>
          </ComputeScalar>
        </RelOp>
      </QueryPlan>
    </StmtSimple>
      </Statements>
    </Batch>
  </BatchSequence>
</ShowPlanXML>

如您所见,根本没有使用新索引。执行计划没有改变。为什么?

标签: sqlsql-serverperformanceindexing

解决方案


推荐阅读