将SQL Server视图链接到Access db:性能问题

时间:2009-10-16 18:51:02

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

将SQL Server视图作为MS Access链接表附加时,系统会要求您提供唯一标识符。在最近的试验中,我注意到有几次,没有定义唯一标识符会导致链接表打开得更快(你不需要秒表,你可以真正看到它)。

所以我问专家是否有解释,以及规则是什么:定义或不定义附加视图的主键?

我在同一台计算机上进行的比较,相同的Access 2007数据库,相同的视图,相同的驱动程序(SQL Server 10),相同的SQL Server 2008服务器。 对于我的情况,我不需要更新链接表(这是SQL视图)。

2 个答案:

答案 0 :(得分:1)

Access只需要一个唯一的标识符即可执行更新。如果您没有定义唯一标识符(并且您不需要),则不会跟踪它们,所以我猜它更快。我不确定为什么差异如此显着。您在慢速版本上选择的唯一标识符的宽度(列和字节)是多少?

答案 1 :(得分:1)

我在我的测试机器上复制了你的结果,甚至还运行了探查器,看看我是否能搞清楚。我连接到一个视图两次,一次指定了唯一标识符,一个没有。和你一样的结果。

配置文件不是很有启发性;对于UNindexed视图,它是标准的SELECT columnList FROM视图。对于Indexed视图,它仅指定了键列(即使结果清楚地显示了所有列)。

我唯一能想到的是,由于您在Access中指定了唯一键,因此必须将数据集完全拉入内存,以便Access将服务器上的键列与本地索引相关联。如果没有本地索引,那么就不需要发生该关联。