【问题标题】:Sorting columns is very slow in Access after moving back-end to SQL Server将后端移动到 SQL Server 后,Access 中的列排序非常慢
【发布时间】:2022-01-13 11:59:25
【问题描述】:

我使用 SQL Server Migration Assistant for Access 工具将数据库移动到 SQL Server 并将 Access 作为前端。一切都很顺利,数据看起来正确,报告运行良好等等。我只是遇到了一个问题,它基本上无法使用。

当我在 Access 中打开表并尝试对列进行排序时,速度非常慢。当我单击该列并选择一个选项(例如排序 A-Z)时,它会在左下角显示“正在计算...”大约一分钟,然后它才会实际对该列进行排序。

有什么办法可以加快速度吗?我是否在迁移中做了一些可能导致这种情况的事情?以前没有任何问题。

【问题讨论】:

  • 您可以使用 SQL-Server Profiler 查看 Access 在排序时向数据库发送的命令类型。这可能会提示您正在发生的事情以及重构或添加索引是否会有所帮助。您要在计算列上排序的列吗?注意:查询中的 VBA 函数由 access 执行。在这种情况下,将此类查询转换为传递查询(即,转换为 SQL-Server 方言)或 SQL 视图可能会有所帮助。
  • @OlivierJacot-Descombes 这不是计算列。您是否可以提供任何好的链接来进行传递查询或 sql 视图?我一直在尝试寻找有关实施这些解决方案的文档,但没有发现任何有用的信息。
  • Create a pass-through querySQL View – A complete introduction and walk-through。然后,您可以将视图作为表格链接到 Access。在这两种情况下,您都必须使用 SQL-Server TSQL 方言编写查询。
  • @OlivierJacot-Descombes 谢谢!我会检查一下,希望它能帮助我解决我的问题。
  • 应该注意这不是正常行为,因此调查实际发生的情况是一个好主意,也许比开始构建解决方法更好。

标签: sql-server ms-access ms-access-2016


【解决方案1】:

如果没有关于表的更多信息(即它的大小、索引和网络速度),很难确定您看到此延迟的原因,但您可以采取一些步骤来缩小延迟的来源。

在 SQL Server Management Studio 中,创建一个对表中的同一列进行排序的查询。 (即Select * from Tablename ORDER BY Columnname;)。

如果这运行得很快,那么您可以非常确定该表及其索引都没有问题,您需要查看您的计算机和 SQL 服务器之间的网络速度。如果它运行缓慢,则问题出在表、它的索引甚至 SQL 服务器上。

【讨论】:

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