加速 MSAccess 2003 和 MSSQL

Posted

技术标签:

【中文标题】加速 MSAccess 2003 和 MSSQL【英文标题】:Speed up MSAccess 2003 and MSSQL 【发布时间】:2013-02-20 17:24:46 【问题描述】:

我想将我当前的数据库从 MDB 移动到 MSSQL 服务器。当我通过 ODBC 完成此操作时,查询变得特别慢。 我有红色,它引起了ODBC,不支持group by和JOIN,join,所以它必须在当前机器上做多个查询和处理数据。

我怎样才能更快地切换到某些东西(对于 MSAccess 2003)?

【问题讨论】:

在 MS Access 中运行时查询是否缓慢?在您采取这一大而可能昂贵的步骤之前,您确定 Access 是问题所在吗?例如,您的数据库有多大? 【参考方案1】:

实际上,在大多数情况下,Access 都做得不错。如果您的查询有一些连接,但特别是有一些聚合分组依据,那么只需创建一个视图,然后链接到该视图。它的运行速度可能与传递查询一样快,但在 Access 端没有麻烦和努力。

所以在大多数情况下,使用 Access 作为 SQL Server 的前端应该能够获得出色的性能。

所以,对于调用存储过程,或者对于一些报表,可以考虑使用直通查询。

但是,为了节省您的时间和精力,对于具有联接的查询,尤其是具有分组依据或计数等聚合的查询,然后只需创建一个视图服务器端,然后链接到该端即可。

当你这样做时,你会发现性能第一。

【讨论】:

MS Access 在用作 SQL Server 的前端时会导致可怕的性能问题而臭名昭著。有一些变通方法,例如传递查询,但大多数 Access 用户不够成熟,无法使用它们。【参考方案2】:

只是一个基本而愚蠢的问题:您是否在 SQL 数据库中定义了所有需要的索引?

【讨论】:

【参考方案3】:

您是否尝试过这种方法:http://www.packtpub.com/article/transferring-data-ms-access-2003-to-sql-server-2008?

要让它重演,在最后一步,勾选“保存 SSIS 包”并适当地安排它。

这是 Microsoft for Microsoft 的方法,因此除非存在已知问题,否则我会将其用作最佳方法。

【讨论】:

【参考方案4】:

在使用 MS Access 时,您可以使用 Access 数据项目。这为您提供了一个带有 SQL Server 后端的 MS Access 前端。 Access 数据项目的主要好处是 (a) 您可以获得真实 SQL 数据库的稳定性、可扩展性和安全性,同时 (b) 仍然使用著名的 MS Access 前端和编程。

请参阅此 *** 问题以进行深入讨论:Pros and Cons of Access Data Project (MS Access front end with SQL Server Backend)

【讨论】:

最新版本的 SQL Server 并不真正支持 Adps。 Microsoft 正在推荐链接表。 ADP 可用于 SQL Server 2008 及更早版本。如果您需要使用更高版本的 SQL Server,那么您仍然可以使用 ADP,但在这种情况下,设计服务器对象(表、视图、存储过程、函数和关系)是使用 SQL Server Management Studio 完成的。 最新版本的 Access 甚至不支持 ADP。 SQL Server 已宣布 ADO 和 ADP Access 项目所需的 oleDB 生命周期结束。因此,使用 ADP Access 项目,实际上选择 ADO 是一个非常糟糕的选择。您最好使用链接表并坚持使用 Open Database 连接选项。 问题是关于 MS Access 2003。对于那些比 SQL Server 更熟悉 Access 的人来说,ADP 是一个不错的选择。

以上是关于加速 MSAccess 2003 和 MSSQL的主要内容,如果未能解决你的问题,请参考以下文章

ms access 2003 .mdb 无法查看表

MS Access 2003 可以连接到的最新 SQL Server 后端是啥?

关于 MS Access 2003 和 VBA 编程

MS Access 2003 不进入调试模式并忽略断点

MS Access 2003 + 到 SQL Server 2005 的链接表 + Windows 身份验证 = 慢

windows 2003 directx 3D加速 开启