我在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
表Articulos
由ID_Articulo
和ID_Unidad
单独编制索引。
表Conversiones
由ID_Articulo
和ID_Unidad1
分别编制索引。
执行计划为两个占用大量资源的表显示表扫描。
我怎样才能找到原因?
答案 0 :(得分:1)
您的查询中没有过滤器,考虑到这一点,您将聚合整个2个表。使用索引sql可能需要在查找上花费更多资源。因此,进行表扫描可能更便宜。
如果您将使用过滤器来减少数据,则可能会决定更改计划。