访问大型sql表的直通查询

访问大型sql表的直通查询,sql,ms-access,performance,passthru,Sql,Ms Access,Performance,Passthru,我在mysql数据库中有一个大表(600万条记录)。如果我链接这个表,我就可以很好地打开它——似乎access会根据需要请求记录。但是,如果我使用passthrough查询,access似乎会在打开整个表之前请求它。这在我的普通表(200000)记录上已经足够慢了,但是大的记录是不可能的。我想使用passthrough来使用sql语句,但我需要加快速度。有办法做到这一点吗?谢谢 编辑: 这里是查询;再简单不过了。 从Traffic12中选择*。Access正是按照您的指示执行。只有当您希望在服务

我在mysql数据库中有一个大表(600万条记录)。如果我链接这个表,我就可以很好地打开它——似乎access会根据需要请求记录。但是,如果我使用passthrough查询,access似乎会在打开整个表之前请求它。这在我的普通表(200000)记录上已经足够慢了,但是大的记录是不可能的。我想使用passthrough来使用sql语句,但我需要加快速度。有办法做到这一点吗?谢谢

编辑: 这里是查询;再简单不过了。
从Traffic12中选择*。Access正是按照您的指示执行。只有当您希望在服务器上执行WHERE子句(筛选)或在服务器上进行连接时,或者当您利用服务器端功能(如UDF)时,或者当您希望添加“提示”以使后端服务器能够理解时,才可以使用传递查询

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


当过滤在服务器端完成时,直通查询在带宽方面比非p-t查询节省得多,因此相对于非直通查询可以产生较大的性能增益。或者,有时后端是一台巨大的4 CPU机器,具有大量RAM,可以在一瞬间通过大量索引进行转换。您必须评估情况,看看哪种方法更好地考虑所有因素。

您的查询需要整个表。Access正是按照您的指示执行。只有当您希望在服务器上执行WHERE子句(筛选)或在服务器上进行连接时,或者当您利用服务器端功能(如UDF)时,或者当您希望添加“提示”以使后端服务器能够理解时,才可以使用传递查询

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


当过滤在服务器端完成时,直通查询在带宽方面比非p-t查询节省得多,因此相对于非直通查询可以产生较大的性能增益。或者,有时后端是一台巨大的4 CPU机器,具有大量RAM,可以在一瞬间通过大量索引进行转换。您必须评估情况,看看什么方法更适合所有因素。

请发布您的直通查询。直通查询应该与您描述的正好相反。根据我使用MS Access的经验,p-t查询将查询语句发送到后端执行,而非p-t查询有时会带来整个表向下或向客户端填充密钥集。无法编辑我之前的评论--请参阅下面的答案。请发布您的传递查询传递查询应该与您描述的正好相反。根据我使用MS Access的经验,p-t查询会将查询语句发送到执行查询语句的后端,而非p-t查询有时会将整个表或完整的密钥集发送到客户端。无法编辑我之前的注释--请参见下面的答案。谢谢,我理解得更好!大多数WHERE子句也将通过Jet/ACE传递给服务器。事实上,您必须非常努力地编写Jet/ACE不会这么做的SQL。谢谢您,我理解得更好!大多数WHERE子句也将通过Jet/ACE传递给服务器。实际上,您必须非常努力地编写Jet/ACE不会编写的SQL。