为什么此查询使用两次 table 扫描?

Why this query uses two table scans?

我在 SQL Server 2008 R2 上有这个简单的查询:

SELECT Art.ID_Articulo, 
       conv.Factor AS PesoToneladas 
FROM   dbo.Articulos Art 
       LEFT JOIN dbo.Conversiones conv 
              ON conv.ID_Articulo = Art.ID_Articulo 
                 AND conv.ID_Unidad1 = Art.ID_Unidad 

Table Articulos 分别由 ID_ArticuloID_Unidad 索引。 Table ConversionesID_ArticuloID_Unidad1 单独索引。

执行计划显示 table 扫描 两个 table 占用大量资源。

我怎样才能找到原因?

您的查询中没有过滤器,考虑到这一点,您将聚合整个 2 tables。使用索引 sql 可能需要在查找上花费更多资源。所以做 table 扫描可能更便宜。

如果您将使用过滤器来减少数据sql可能会决定更改计划。