我执行了一个查询,发现如果我独立执行内部查询,则执行时间会更长。
我的查询是
select distinct
SUBSTRING(UserUri,CHARINDEX('@',UserUri)+1,LEN(UserUri)) as Company
FROM
[DWH].[dbo].[UsersDetails]
where
UserUri not like '%@mycompany.com%'
and UserId in (
select distinct UserId from UsersInfo
)
and ISNUMERIC(SUBSTRING(UserUri,CHARINDEX('@',UserUri)+1,LEN(UserUri)))!= 1
总体查询需要18-20秒才能运行。但是当执行内部查询,即(从用户中选择不同的UserId)时,需要40-50秒。
我怀疑的是,如果内部查询需要40-50秒,外部查询应该在此之后结束。