VVS*_*VVS 3 vb6 debugging ms-access trace jet
我们使用由我们最大的客户编写的程序来接收订单,预订运输和其他与订单相关的东西.我们没有其他机会,只能使用该程序,并且当涉及到他们的程序问题时,客户是非常不支持的.我们只需要接受该计划.
现在这个程序在与两个或更多用户一起使用时大部分时间都非常慢,所以我试着看看窗帘后面找到问题的根源.
我还使用Process Monitor监视文件访问,并找出程序速度如此之慢的原因:它在mdb文件上进行了数千次读取操作,即使程序空闲也是如此.通过网络,这当然非常缓慢:
Process Monitor Trace http://img217.imageshack.us/img217/1456/screenshothw5.png
有没有办法监视负责读取活动的查询?我可以设置跟踪标志吗?挂钩JET DLL的?我想这个程序正在做一些昂贵的查询,导致JET在这个过程中读取大量数据.
PS:我已经尝试将mdb放在我们公司的文件服务器上,成功访问它甚至比本地共享更慢.我也尝试在客户端上更改锁定机制(机会锁定)但没有成功.
我想知道发生了什么,需要一些有关我们客户开发人员的事实和建议,以帮助他/她更快地完成程序.
小智 6
为了让你的贪婪掌握正是Access在幕后查询的内容,还有一个名为JETSHOWPLAN的未记录功能 - 当在注册表中打开时,它会创建一个showplan.out
文本文件.详细信息在此TechRepublic文章 备用中,在
此汇总:
ShowPlan选项已添加到Jet 3.0,并生成包含查询计划的文本文件.(ShowPlan不支持子查询.)您必须通过向注册表添加Debug键来启用它,如下所示:
Run Code Online (Sandbox Code Playgroud)\\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\JET\4.0\Engines\Debug
在新的Debug键下,添加一个名为的字符串数据类型
JETSHOWPLAN
(必须使用全部大写字母).然后,添加键值ON
以启用该功能.如果Access已在后台运行,则必须将其关闭并重新启动才能使该功能正常工作.启用ShowPlan后,Jet会
SHOWPLAN.OUT
在My Documents
每次Jet编译查询时创建一个名为(可能最终位于您的文件夹或当前默认文件夹中的文本文件,具体取决于您使用的Jet的版本).然后,您可以查看此文本文件,以获取有关Jet如何运行查询的线索.我们建议您通过更改密钥值来禁用此功能,
OFF
除非您专门使用它.Jet将计划附加到现有文件,最终,该过程实际上减慢了速度.仅在需要查看特定查询计划时才启用该功能.打开数据库,运行查询,然后禁用该功能.
为了追踪噩梦问题,这是无与伦比的 - 这是你在昂贵的大型工业数据库上得到的东西 - 这个功能很酷 - 它很可爱又蓬松 - 这是我的朋友...... ;-)