【问题标题】:MS Access 2007 and SQL Server 2000MS Access 2007 和 SQL Server 2000
【发布时间】:2009-06-18 20:14:27
【问题描述】:

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

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

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

有什么想法吗?

【问题讨论】:

  • 您能否发布您遇到问题的查询,以便我们可以看到全貌?如果查询中不明显,也可能是表架构。

标签: ms-access-2007


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    如果您需要更新数据,那么存储过程可能是最佳选择。

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多