[英]MS-Access SQL Query Performance - Slow
我有一个查询,从其他查询中提取数据并加入。 最终查询大约需要8分钟才能运行。 有没有更有效的方法来从基于查询的查询中查询信息(例如使用第一个查询的结果创建表或构建索引-OR ??)。
我的最终查询很简单:
SELECT Filtered_ZFEWN.[Base 8], Filtered_ZFEWN.Notification, Filtered_ZFEWN.
[Service Product], Filtered_ZFEWN.[Product Hierarchy]
FROM Filtered_ZFEWN RIGHT JOIN
Notifications_by_Base_8 ON Filtered_ZFEWN.[Base 8] =
Notifications_by_Base_8.[ZFEWN Base 8]
WHERE Notifications_by_Base_8.[Product Hierarchy] IN
(SELECT Notifications_by_Base_8.[Product Hierarchy]
FROM Notifications_by_Base_8
WHERE Notifications_by_Base_8.[Product Hierarchy] NOT LIKE "*MISC*");
该查询从其他6个查询中提取数据(您可以看到它从两个查询中显式提取数据,但其他查询也是基于4个查询构建的)。 我正在寻找性能改进。
通过在Like "*MISC*"
的开头添加通配符,可以在子查询上使用任何索引来停止Access。
对于较大的数据集,这将大大降低其速度。
您可以在查询链中的较早位置移动筛选,还是先删除通配符再删除? 还是构建没有Not子句的In子句?
子查询(IN关键字后的查询)不是多余的并且总是返回相同的结果吗? – Peeyush 15小时前
@peeyush你是正确的-答案是正确的。 我删除了select子查询,并仅保留了NOT LIKE“ misc”部分,此部分在8秒钟内运行。 谢谢!!! – Analyst123456789 11秒前编辑
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.