Access通过查询大型sql表

时间:2011-01-13 07:05:44

标签: sql ms-access performance passthru

我在mysql数据库中有一个大表(600万条记录)。如果我链接表,我可以打开它 - 似乎访问请求记录根据需要。但是,如果我使用直通查询,似乎访问在打开它之前请求整个表。这在我的普通表(200,000)记录上足够慢,但是大的记录是不可能的。我想使用passthrough来使用sql语句,但我需要让它更快。有没有办法做到这一点?谢谢!

修改 这是查询;你不能比这简单得多。 SELECT * FROM Traffic12

1 个答案:

答案 0 :(得分:3)

您的查询要求输入整个表格。 Access正在完成你告诉它要做的事情。使用传递查询的唯一情况是,您希望在服务器上执行WHERE子句(过滤),或者在服务器上进行连接,或者在利用服务器端功能时(例如UDF)或者想要添加后端服务器可以理解的“提示”。

在不使用p-t查询时,您注意到的明显性能优势来自于Access一次只获取一定数量的行;但是当你使用pass-thru时,你正在绕过分页算法的这种优化。

当在服务器端完成过滤时,pass-thru查询带宽比非p-t更加简约,因此相对于非pass-thru可以产生大的性能增益。或者有时后端是一台巨大的4 CPU机器,拥有大量的RAM,可以在闪存中通过大型索引进行流失。你必须评估情况,看看哪种方法更好地考虑所有因素。