【问题标题】:SQL View Linked in Access Times Out访问超时中链接的 SQL 视图
【发布时间】:2017-08-08 17:50:21
【问题描述】:

如果我在 SSMS 中运行它,我有一个 SQL 视图,它需要 4-5 秒才能运行,没有过滤器。如果我尝试在 Access 2010 中打开链接的“表”,则会超时。

在选项 - 客户端设置中,我将 OLE/DDE 超时设置为 0,将 ODBC 超时设置为 0。我仍然收到 ODBC--调用失败。 [Microsoft][ODBC SQL Server Driver]查询超时已过期 (#0)。单击确定后,我会收到另一条消息 [当前应用程序名称] 无法在数据表视图中打开表格。

我只是不明白为什么我无法在 Access 中打开这个链接表,但底层视图现在只有 88 条记录。列很多,但结果很少,在SSMS中运行只需要几秒钟。为什么会超时并出现Access中的链接表之类的问题?

非常感谢任何帮助。

谢谢!

【问题讨论】:

  • 当您在 Access 的设计视图中打开链接表时,它是否显示主键(一个或多个字段旁边的小金键图标)?
  • 不,没有主键。真的没有,因为这个sql视图基本上是应用程序中所有表的左连接(或多或少),以提供应用程序中的所有字段和信息,因此它可以作为构建您自己的基础报表。他们从这些字段的列表中选择字段,并从列表框中进行过滤,这些过滤器作为标准提供给相应的字段。本质上,它将始终应用过滤器,但应该能够完全在访问中运行,就像在 sql 中一样。
  • 您能否确认 Access 中的 SELECT COUNT(*) AS n FROM dbo_YourViewName 返回行数而不会超时?另外,SQL 视图是否会返回超过 255 列?
  • 感谢您的回复。有 62 列,我无法从 Access 中的视图中获得计数。我可以在 SSMS 中。
  • 不幸的是,我加入了 2 个不同的 sql 数据库服务器,其中一个有不同的排序规则。 Access 将只允许在直通中进行并且不起作用,因此我将不得不研究其他方法来使这个完整的视图正常工作。

标签: ms-access timeout odbc linked-server


【解决方案1】:

所以我和一位同事一起研究了这个谜题。将这个包含 30 个表连接的 118 行查询转换为 Access 查询会很困难,而且性能仍然很差。

相反,我将巨型视图的各个部分拆分为单独的较小视图。每个独立的视图,都会被加入一个访问查询中,这样查询的每个部分都可以独立过滤,并允许较小的结果集,从而提高整体性能。

【讨论】:

  • 这个庞大的查询是否设置为 SQL Server 中的视图并且您正在链接到该视图?或者它是在链接表上操作的 Access 中的 Query 对象?还是设置为在 SQL Server 上执行的传递查询的 Query 对象?
  • 这是我链接到的一个巨大的 sql 视图。现在是 17 个较小的视图。我正在研究如何以更快的方式加入他们。仍在努力。我希望能够根据他们动态选择的列(从字段列表框中)动态加入我需要的视图,但这可能有点复杂。我会去那里的。
猜你喜欢
  • 2014-03-02
  • 2012-05-04
  • 2017-05-20
  • 2013-01-02
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多