Access 2007链接表性能

时间:2010-09-08 14:05:50

标签: ms-access ms-access-2007

我有一个Access 2007应用程序(以前在Access 2003中),当链接数据库表位于网络驱动器上时,它会遇到一些性能问题。在2003年,该应用程序工作得很好。现在在2007年,使用sql和记录集的数据检索速度降低得非常差。我遇到问题的具体区域是:

DIM rs AS NEW ADODB.RECORDSET
rs.Open tsSql, CurrentProject.AccessConnection, iKeyset, iLock

iKeyset设置为0,iLock设置为3

rs.Open命令需要4到5秒,这是一个问题,因为在我的某些表单中,这可能会在加载时多次发生。

有什么想法吗?

编辑:更不用说我相信在这些情况下,在设计视图中打开和保存表单似乎比正常情况慢。

2 个答案:

答案 0 :(得分:1)

有一个修补程序Description of the Access 2007 hotfix package (Access.msp): August 26, 2008提到了性能问题,但这很可能包含在Access 2007 SP2中。单击Office按钮>>访问选项(右下角)>> “资源”选项卡,查看有关Microsoft Office Access 2007的标题部分。矿州12.0.6535.5005)。

答案 1 :(得分:1)

根据所涉及的SQL语句(即上面的变量'tsSQL'),您的记录集应立即打开,无论是ADO还是DAO。

我想到的想法:你的连接是否持久?这似乎导致2007年的延迟比2003年更多。可能它每次都在下降并重新建立连接。对于表单,当您的记录源为空并在代码中设置时会发生这种情况,因此建议您始终拥有一个记录源,例如“tblBlankTable”(一个小的单记录表,只是为了始终保持连接始终以一种始终存在的形式打开)。 4到5秒的延迟是关于你没有到位的延迟。尝试确保在运行rs.open时始终将表单连接到数据库,看看是否有效。可能您可能需要在您的情况下打开ADO连接的表单。在Access论坛上有很多关于此的文章。

当您是唯一的用户而不是其他人拥有打开锁定文件的数据库时,它会更快吗?这是告示标志。

另一个想法是,在升级时是否正确索引了所有内容。底层数据库是否保持不变或从MDB升级到ACCDB?你没有说明tSQL中的内容,所以也许你正在加入非索引字段或导致特定tSQL运行缓慢而只需要添加主键的东西。

如果您的'tsSQL'涉及查询,我已经读过,升级时重要的是重新编译所有查询 - 进入设计模式,然后运行它们,然后再次保存。

您可以尝试使用自己的连接字符串连接到数据库 - MDB / Jet有一种格式,ACCDB / Ace有另一种格式。有两个提供商,通常使用从Excel到MDB或ACCDB,但也许可以在Access中工作,至少调试你的问题。