Sql server 在Access中打开链接表比在SQLServerManagementStudio中打开查询快得多

Sql server 在Access中打开链接表比在SQLServerManagementStudio中打开查询快得多,sql-server,ms-access,Sql Server,Ms Access,我有一个Access 2010.accdb前端,带有一个链接到SQLServer(2008 R2)视图的表。 令人惊讶的是,在Access中打开它大约需要5-10秒,而在SSMS中执行select并没有在3分钟内完成(之后我只是取消执行)。 原因可能是什么 编辑: 我的错误:让它慢得让人无法忍受的是,我试图只选择第一个(前1*)记录。 现在我可以继续我的工作了,问题只是学术性的: 我认为选择一条记录比选择整个记录集要快。原因可能是什么 我知道这不仅仅发生在我身上: 当您在Access中打开表时,

我有一个Access 2010.accdb前端,带有一个链接到SQLServer(2008 R2)视图的表。 令人惊讶的是,在Access中打开它大约需要5-10秒,而在SSMS中执行select并没有在3分钟内完成(之后我只是取消执行)。 原因可能是什么

编辑: 我的错误:让它慢得让人无法忍受的是,我试图只选择第一个(前1*)记录。 现在我可以继续我的工作了,问题只是学术性的: 我认为选择一条记录比选择整个记录集要快。原因可能是什么

我知道这不仅仅发生在我身上:

当您在Access中打开表时,Access会请求第一条记录(至少与填充第一个屏幕的记录数量相同),然后继续在后台加载更多记录

如果表有主键,则在SSMS中简单地执行
从某个表中选择TOP 1*
应该总是很快的


只有在非索引列上添加ORDER BY子句时,性能才会受到影响,因为必须扫描整个表。

选择是在结构为“a left join(B union C)”的视图上执行的。表A根本没有索引(甚至没有PK),但我也没有显式地按clasue.Aha编写任何订单。那么,在一个没有定义顺序(因为它没有主键)的表上,“前1名”应该是什么意思呢?每个表都应该有一个主键,句号:)“从A中选择顶部1*”功能正常,问题是在视图中被询问时。我会尝试做一些清洁,添加PK并让您知道结果:)