当我想使用带有MSSQL链接表(通过ODBC)的Access前端应用程序时,最好的解决方案是什么?
对我来说,这方面的困难在于,我必须使用具有多个联接(以及从查询中调用的函数)的复杂查询。由于两个DB之间的连接非常慢(有些表中有很多数据,2GB的访问mdb限制是MSSQL升级的原因)。
传递查询没有帮助,因为已连接的访问表。.=‘5’>.在Server中,它仍然很慢。我尝试使用MSSQL中的WHERE子句连接ODBC视图,但它似乎与整个表一样慢。
我必须将所有已连接的访问表移动到MSSQL,并将所有查询转换为传递?还有别的解决办法吗?
发布于 2019-08-29 22:00:56
我必须将所有已连接的访问表移动到MSSQL DB。
是的,当然。
并将所有查询转换为传递?
不一定,只有那些还很慢的。
“普通”内部连接查询(仅使用来自一个服务器数据库的链接表)由Access和ODBC驱动程序以在服务器上处理所有内容的方式处理。它们应该与在服务器上运行时(或者作为传递查询)一样快(或多或少)。
只有“复杂”查询,特别是涉及多个内部和外部连接的查询,才不会这样工作。您会注意到,在链接表上运行时,它们仍然非常慢。这些需要更改为传递查询。
编辑:我刚注意到
从查询调用的函数
您不能从PT查询中调用VBA函数,当从运行在链接MSSQL表上的Access查询调用VBA函数时,它们将再次破坏性能(因为它们必须在本地处理)。
您需要学习如何在MSSQL中创建视图,可能还需要用户定义函数和/或存储过程。
从长远来看,您会发现视图实际上比PT查询更容易管理。
https://stackoverflow.com/questions/57713965
复制相似问题