所以这是一件奇怪的事情。我对数据库的访问权限有限 - 这里最相关的限制是,如果我创建一个查询,则返回最多10,000行。
无论如何,我一直试图让查询返回个别案例详细信息,但仅在繁忙时间 - 例如,在一小时内有50多个案例被处理。所以,我插入了以下一行:
COUNT(CaseNo) OVER (PARTITION BY DATEADD(hh,
DATEDIFF(hh, 0, StartDate), 0)) AS CasesInHour
...然后将其用作子查询,仅选择那些案例where CasesInHour >= 50
然而,事实证明10,000行限制会影响分区 - 当我试图运行更长时间时没有出现任何问题,因为它只是在一个(相当随机的)小得多的选择中计算任何给定小时内的情况
任何人都可以想办法绕过这个限制吗?返回的最终总数将远远低于10,000行,但它将远远超过10,000作为起点。
答案 0 :(得分:0)
如果这是我们正在讨论的MySQL,sql_big_selects
和max_join_size
会影响检查的行数,而不是“返回”的行数。因此,您需要通过更具选择性和使用适当的索引来减少检查的行数。
例如,以下查询可能正在检查超过10,000行:
SELECT * FROM stats
要限制选择性,您可能只想获取过去30天内的行:
SELECT * FROM stats
WHERE created > DATESUB(NOW(), INTERVAL 30 DAY)
但是,如果created
列上有索引,并且索引的基数足以减少检查的行数,这只会减少检查的行数。