Sql 我正在尝试使用内部联接联接两个表
我试图用内部联接联接两个表,第二个表是一个大表。因此,当我运行查询时,它花费的时间太长。这是我的查询示例Sql 我正在尝试使用内部联接联接两个表,sql,sql-server-2008,Sql,Sql Server 2008,我试图用内部联接联接两个表,第二个表是一个大表。因此,当我运行查询时,它花费的时间太长。这是我的查询示例 select distinct name,number,ID,count from Import A inner join Claim B on B.ClaimNo between A.beginClaimNumber and A.endClaimnumber where cast(Receivedate as date) between ('2015-01-01') and (
select distinct name,number,ID,count
from Import A
inner join Claim B
on B.ClaimNo between A.beginClaimNumber and A.endClaimnumber
where cast(Receivedate as date) between ('2015-01-01') and ('2015-03-01')
and B.IO = 'O'
order by ID
尝试在导入时使用INCLUDE放置包含查询的索引 然后在claimNo上添加另一个索赔,包括beingClaimNumber和endClaimNumber
还可以在SQL management studio中检查执行计划,它可能会给您提供建议。花费太长时间并不是一个真正的错误。可能有很多原因导致了这种情况,但没有一个与您的查询相关。从索引开始。删除WHERE子句中的强制转换和类间转换,然后尝试可搜索的内容,请参阅此处确保在ClaimNo列的Claim表上有索引。我添加强制转换是因为Receivedate是时间戳。我在Claim表中有多个索引,您认为在IO上添加索引是一个好主意吗。如果我从查询中删除B.IO,查询似乎正在执行一些结果,但仍然需要更长的时间,如果我添加B.IO='O',则需要永远的时间。