Coldfusion QoQ速度非常慢
该查询通常从缓存的查询中获取大约40k行。不管什么原因,QoQ都很慢。我试图删除大部分逻辑(不同的、分组等),但没有任何效果,这使我相信设置中存在错误。有人知道发生了什么事以及如何加速吗Coldfusion QoQ速度非常慢,coldfusion,qoq,Coldfusion,Qoq,该查询通常从缓存的查询中获取大约40k行。不管什么原因,QoQ都很慢。我试图删除大部分逻辑(不同的、分组等),但没有任何效果,这使我相信设置中存在错误。有人知道发生了什么事以及如何加速吗 subcats (Datasource=, Time=42979ms, Records=14) SELECT DISTINCT(SNGP.subtyp1) AS cat, MIN(SNGP.sortposition) A
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
subcats(数据源=,时间=42979ms,记录=14)
挑选
与cat不同(SNGP.subtyp1),
最小值(SNGP.sortposition)作为sortposition,
作为url的最小值(taxonomy.web\uURL)
从…起
SNGP,
分类学
哪里
SNGP.typ>“”
和上部(SNGP.典型)“空”
和鞋面(SNGP.DEPT)=“鞋”和鞋面(SNGP.TYP)=“时尚”和SNGP.SUBTYP1“空”
按SNGP.subtyp1分组
按SNGP.sortposition ASC订购
typ>“
将结果限制为1000行,但UPPER(SNGP.typ)'EMPTY'
将其限制为仅100行,则应将其放在第一位。这是一般的SQL建议,不确定它在QoQ中的效果如何为了调试,我将开始分解您的查询,看看您是否可以确定哪个部分需要时间。首先删除
GROUP by
子句,然后重新运行。然后删除ORDER BY
子句并重新运行。然后开始逐个从WHERE
子句中删除条件,直到看到明显的时间差。至少你会知道是什么导致了延迟,然后也许可以想出一个更好的方法来完成这一部分。事情就是这样。也许你还有另一种方法来实现你的目标。他似乎在QoQ的范围内。来自:查询查询非常适合于5000到50000行的表,并且只受ColdFusion主机内存的限制。该站点托管在一个糟糕的服务器上,内存可能是个问题。“查询大约有40k行”。。。正确的。。。所以这种数据处理应该在数据库中进行,对吗?不在CF的内存中使用非常基本的SQL处理引擎。即使它工作得很快,我想你也不应该在CF中这样做。我试图得到一个更好的结果集,但问题是这是一系列产品过滤器的结果。不幸的是,Coldfusion中的QoQ没有连接功能。MIN的存在纯粹是为了避免使用distinct进行分组。至于第四,我不知道在哪里用这种方式工作,这是一个很好的信息。很好的建议,但我认为我们的整体数据库设计只是过时的。它确实需要更多的规范化,这样我们才能更好地利用索引。感谢您的建议。您可以加入QoQ:从tbl1 T1、tbl2 T2中选择COL,其中T1.PK=T2.FKQoQ确实支持一些加入功能。来自:查询的查询通过WHERE子句支持联接。查询查询不支持通过内部联接或外部联接子句进行联接。注意:查询查询仅支持两个表之间的联接。