为什么此查询使用两个表扫描?

时间:2015-08-12 15:06:23

标签: sql-server database-optimization

我在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 

ArticulosID_ArticuloID_Unidad单独编制索引。 表ConversionesID_ArticuloID_Unidad1分别编制索引。

执行计划为两个占用大量资源的表显示表扫描

我怎样才能找到原因?

1 个答案:

答案 0 :(得分:1)

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

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