1

我最近升级到了 Office 2007。我有几个链接到 SQL Server 2000 数据库的 Access 数据库(出于多种原因,我一直保持 Access 2000 格式)。我经常使用这些数据库中的几十个查询。我每天都会创建新的查询,对数据进行排序、总结和一般分析。

自升级以来,一些查询需要很长时间才能完成(几分钟而不是几秒钟),而我尝试运行的一个新查询根本没有完成,我必须在 Access 上结束任务。这是一个相当简单的查询,它连接 3 个表,并对其中一个字段进行排序。我一直这样做,现在看来我做不到。

我搜索了类似问题的讨论,但没有看到具体的建议。

有任何想法吗?

4

4 回答 4

1

我建议删除所有 ODBC 链接表并从头开始重新创建它们。

于 2009-06-18T21:04:55.803 回答
0

我会在 SQL Server 2000 中使用 Access Data Projects。当你的 SQL 后端太旧时,它会很好用。

于 2012-10-19T12:58:44.527 回答
0

如果您的查询不需要对数据进行任何更改,您可能会发现将它们转换为 SQL Pass through 查询将大大加快它们的速度。请注意,这些查询不是通过 Jet DB 引擎解析的,而是直接发送到服务器并绕过任何链接表。

您将不得不使用 MS SQL 语法并丢失 QBE 网格,结果将是只读的。

如果您需要更新数据,那么存储过程可能是可行的方法。

于 2009-06-20T22:08:29.310 回答
0

当我转换到 SQL Server 后端时,我使用了 SQL Server 迁移助手。我强烈推荐它。它非常擅长它的工作。

话虽如此,我假设您在 FE 中使用链接表。我通过从 Access 复制 SQL 来转换缓慢移动的查询,然后将其粘贴到 SQL Server Management Studio 上的“新查询”窗口中。然后,一次完成所有语法更改,我将查询转换为 T-SQL 并将其保存为与 Access 中的查询同名的视图。

我有一个小例程,然后将 Access 查询重命名为“Local_”,然后为 SQL Server 上的视图创建一个链接表条目。您会发现以前运行几分钟的查询会以这种方式运行几秒钟。当然,您可以手动执行此操作。

顺便说一句,SQL Server 迁移助手将转换许多查询(它不会尝试转换操作查询,仅选择查询......)而很少或没有干预。

于 2012-08-20T06:15:44.927 回答