【发布时间】:2015-05-14 05:20:14
【问题描述】:
我正在将 Access 2010 数据库升级到 MS SQL-Server,但我遇到了一些奇怪的问题,只有当我打开多个查询时才会出现这种问题。我发现了这个问题,因为我有一个包含三个子表单的表单,打开速度非常慢。然后我一个接一个地删除了一个子表单,或者只是打开了查询进行测试。以下描述是我测试的结束。
为了描述这个问题,让我们集中讨论我称之为 qA、qB 和 qC 的三个查询。每个查询都基于 SQL-Server 上的每个表,只有几条记录。这些表是使用此连接字符串连接到 SQL 服务器的链接表(后来我发现此连接字符串错误,这就是问题所在。我将其保留在这里,以便此问题和答案仍然有意义。):
ODBC;DRIVER=SQL Server Native Client 11.0;SERVER=SERVER01;Trusted_Connection=Yes;DATABASE=AATest001;
目前 Access 和 SQL-Server 都在一台高性能 PC 上运行。
如果我只打开 qA 或只打开 qB 或只打开 qC,每个查询都会立即打开。但是,如果我打开 qA,然后打开 qB,然后打开 qC,那么整个过程就会变慢。第一个查询开始很快,下一个(大部分时间)也仍然很快。但是第三个查询需要大约 10 秒或更长时间才能打开。
我是否按照 A、B、C 或 C、B、A 或任何其他顺序打开它们都没有关系。它始终是打开速度非常慢的最后一个查询。
在打开查询之间等待 10 秒或更长时间都没关系。如果两个查询已经打开,那么第三个查询会很慢。即使我在打开第二个和第三个查询之间等待了几分钟,第三个查询的打开速度也会很慢。
如果我打开两个查询,然后关闭其中一个,然后再次打开另一个查询,一切都会很快。
我很欣赏任何答案,但也感谢我如何进一步分析问题的可能提示。我尝试了 SQL Server Profiler(我对它知之甚少),但没有什么明显的。
【问题讨论】:
标签: sql-server performance ms-access odbc