用SDK ODBC访问Access数据库,同样的代码,以管理员身份运行时比普通用户快了近10倍,请问有可能是什么原因?

chehw 2007-01-02 12:35:04
运行和编译环境:Windows 2003 Server, VC 6.0 SP6

以前我以管理员身份编写和执行程序,一直没留意。最近发现当我以普通用户读取Access数据库(Access 2003)表时,耗时高到2秒,而以管理员身份运行时,仅用30ms左右。

程序中我用了行向绑定,行集大小(ROW_ARRAY_SIZE)设为128,
SQL_ATTR_CUSROR_TYPE: SQL_CURSOR_DYNAMIC
SQL_ATTR_SCROLLABLE: SQL_SCROLLABLE

代码应该没有问题,内存管理用的是LocalAlloc和LocalFree.
(代码过长,且有很多地方用了自己的封装,不太容易直接贴出来)

关键是以管理员身份和以普通用户身份运行时差异很大,Microsoft Access Driver (*.mdb) 的默认缓冲大小由2048改到了8192,线程数由3个改为了16个也没有什么效果。不知是什么原因。

以上情况是我在安装在sp6以后才发生的,请问有人遇到过类似情况吗?
...全文
465 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chehw 2007-01-11
  • 打赏
  • 举报
回复
暂时还没找到原因。

当成散分题,再多放几天。
ReverseEngineering 2007-01-10
  • 打赏
  • 举报
回复
有可能。
caocheng8230 2007-01-07
  • 打赏
  • 举报
回复
会否有两者之间对数据库的其它的操作的存在
trueadou 2007-01-05
  • 打赏
  • 举报
回复
关注!
chehw 2007-01-04
  • 打赏
  • 举报
回复
自已顶一下。

我做了以下测试,在代码不变的情况下,
1、改用SQL Server后,管理员与非管理员在运行时没有区别。
2、换了一台计算机,vc6没打sp6补丁,管理员与非管理员在运行时也没有区别。

为什么打上sp6补丁后,访问Access 2003会出问题?

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧