【发布时间】:2019-04-06 10:23:19
【问题描述】:
我所拥有的是一个获取一组数据的查询。此查询在特定时间运行。然后,30 分钟后,我有另一个查询(相同的语法)运行并获取相同的数据集。最后,我有第三个查询(即有问题的查询)比较两组数据。它拉出的记录符合:如果“FEDVIP_Active”在第一个数据集中为 FALSE,在第二个数据集中为 TRUE,OR“UniqueID”不存在第一个数据集并在第二个数据集中做 AND FEDVIP_Active 为 TRUE。我质疑下面进行比较的查询的性能。 30 分钟后超时。有什么你可以看到我不应该做的事情,以便最高效地运行?我正在比较的两个完全相同的数据集各有大约一百万条记录。
获取初始数据集的第一个查询:
select Unique_ID, First_Name, FEDVIP_Active, Email_Primary
from Master_Subscribers_Prospects
第二次查询与第一次完全相同。
然后,下面的第三个查询比较数据:
select
a.FEDVIP_Active,
a.Unique_ID,
a.First_Name,
a.Email_Primary
from
Master_Subscribers_Prospects_1 a
inner join
Master_Subscribers_Prospects_2 b
on 1 = 1
where a.FEDVIP_Active = 1 and b.FEDVIP_Active = 0 or
(b.Unique_ID not in (select Unique_ID from Master_Subscribers_Prospects_1) and b.FEDVIP_Active = 1)
【问题讨论】:
标签: sql sql-server tsql