以下查询通常会返回大量结果(大约 750k 个结果)。但是,在生产中,我遇到了返回 0 结果的零星情况。如果我们在它返回 0 后的下一秒重新运行它,它只会正常返回结果。
我确信数据仍然存在,并且不应该有任何东西会删除它......
我在几个地方看了看,我找不到可能导致上述问题的原因......而且,似乎没有一种简单的方法来复制它......这只是随机的。
由于我的 SQL 知识非常有限,您能否考虑一下可能发生这种情况的某些场景?或者也许建议简单的调试方法?
SELECT MAX(Table1.Cust_ID) AS cust_id, Table1.Email, MAX(Table1.Cust_Name) as cust_name
FROM dbo.Table1 WITH (NOLOCK)
INNER JOIN dbo.Table2 WITH (NOLOCK)
ON Table1.id = Table2.id
WHERE Table1.some_id = 100 AND Table1.some_value = 'test_value'
AND Table1.some_boolean_1 = 1
AND Table1.some_date_1 IS NULL
AND (Table1.some_boolean_2 IS NULL OR Table1.some_boolean_2 = 1)
AND (Table1.some_date_2 > '20171119' OR Table1.some_date_3 > '20171119' OR
Table2.some_date_3 > '20171119')
GROUP BY Table1.Email
非常感谢!