查询通常从缓存的查询中获取大约40,000行。无论出于何种原因,QoQ只是缓慢。我试图删除大部分逻辑(不同,分组等)无济于事,这使我相信设置中出现了问题。任何人都知道发生了什么以及如何加快速度?
subcats (Datasource=, Time=42979ms, Records=14)
SELECT
DISTINCT(SNGP.subtyp1) AS cat,
MIN(SNGP.sortposition) AS sortposition,
MIN(taxonomy.web_url) AS url
FROM
SNGP,
taxonomy
WHERE
SNGP.typ > ''
AND UPPER(SNGP.typ) <> 'EMPTY'
AND UPPER(SNGP.DEPT) = 'SHOES' AND UPPER(SNGP.TYP) = 'FASHION' AND SNGP.SUBTYP1 <> 'EMPTY'
GROUP BY SNGP.subtyp1
ORDER BY SNGP.sortposition ASC
答案 0 :(得分:0)
你必须做一个QoQ;您的原始查询是否可以修改为您提供所需的数据?您是否可以按计划缓存所有可能的QoQ?
您从两个表(SNGP,分类法)中进行选择,但我看不到它们之间的连接
web_url听起来像一个字符串,你为什么要对它做一个MIN()?
在WHERE子句中移动第一个限制性最强的部分。例如如果typ > ''
将结果限制为1000行,但UPPER(SNGP.typ) <> 'EMPTY'
会将其限制为仅100行,那么您应该先将其放在第一行。这是一般的SQL建议,不确定它与QoQ的兼容性。
40k行然后只选择14个结果听起来像数据不匹配;在尝试QoQ之前,还有其他方法可以让您的数据受到更多限制。