VB.NET垃圾桶是否访问数据库?

VB.NET垃圾桶是否访问数据库?,vb.net,ms-access,drivers,Vb.net,Ms Access,Drivers,抓住这里的稻草。。。我使用几个2003样式的Access数据库(.MDB)使用VB6桌面系统。最近,我将第一个函数从VB6更改为VB.NET,仍然使用Access数据库。这不仅仅是一种转换,而是一种具有附加功能的重写。它的功能仍然相当简单,只有一个低容量的数据库。我们有1400名客户,他们是具有不同机器质量的小型企业。大多数客户对新的屏幕和功能感到满意。这些客户中很少有人在加载datagridview时遇到过极其缓慢的情况。客户服务告诉我们1)机器至少有1GB的RAM,2)重新启动总能解决问题

抓住这里的稻草。。。我使用几个2003样式的Access数据库(.MDB)使用VB6桌面系统。最近,我将第一个函数从VB6更改为VB.NET,仍然使用Access数据库。这不仅仅是一种转换,而是一种具有附加功能的重写。它的功能仍然相当简单,只有一个低容量的数据库。我们有1400名客户,他们是具有不同机器质量的小型企业。大多数客户对新的屏幕和功能感到满意。这些客户中很少有人在加载datagridview时遇到过极其缓慢的情况。客户服务告诉我们1)机器至少有1GB的RAM,2)重新启动总能解决问题

我编写了一个应用程序来严重降低我的机器速度,但它对我来说仍然比为数不多的几个客户运行得更好。此外,我的Access数据库从未被此应用程序破坏过

有什么建议吗


谢谢

不,VB.Net非常适合Access。共享环境将破坏访问


由于重新启动解决了这个问题,我会检查您是否正确关闭了连接。

听起来像是一个大内存泄漏

一些客户会让您的应用程序运行更长的时间,并且会受到更大的影响


在有多个并发用户的情况下使用Access不可避免地会带来痛苦。

我们有类似的经验,大多数情况下是由防病毒引起的。他们经常检查文件(有些人在每次访问文件时都会对其进行检查)。

更新access数据库时重新启动可能会将其丢弃

你需要更多的信息,以便更好地了解正在发生的事情。他们需要在出现问题的工作站上为您收集一些信息。使用任务管理器,您可以让他们获得以下信息:

  • CPU利用率
  • 什么任务消耗的cpu最多
  • XP上的峰值(已提交)内存-Vista上没有等效内存
  • XP上的总(已提交)内存-Vista上没有等效内存
  • XP上的可用(物理)内存-Vista上的免费(Superfetch使其变得毫无价值)
也可以在XP和Vista上使用命令行工具“SYSTEMINFO”来获取总内存和可用内存。如果您的可用空间很小,并且在XP上,如果您的提交总量大于物理总量,那么您很可能正在进行交换,并且内存不足(或内存泄漏)会导致您的速度减慢

底线是你需要更多的信息。可能是工作站上的另一个应用程序导致了问题。我们遇到过这样一种情况,Notes 5.0出现了一个问题,如果大部分窗口被另一个窗口覆盖,并且您收到了一条新的邮件消息,Notes上的cpu利用率将达到100%。这导致应用程序运行缓慢,除非您在工作站上查看任务监视器,否则您永远不会猜到是Notes导致了问题。问题总是在另一个程序(前台程序)中出现。Access也可以在不同的模式下使用100%的cpu,即使它看起来什么都不做

收集尽可能多的信息。您可能需要编写一个vbscript或程序来为您收集一些信息,以便出现问题的人可以在重新启动之前运行它来收集信息

执行以下操作的批处理文件将为您提供大量信息:


@echo off
SystemInfo  >c:\systeminfo.log
tasklist /v >>c:\systeminfo.log

听起来你的应用程序有内存泄漏。是否有多个用户访问同一访问数据库?这两个存储都有多台计算机。2和4之间的多个平均值。他们将有能力击中相同的DB,但不太可能经常这样做。谢谢你的帮助!我不这么认为。通常需要为局域网上的1-10个用户使用访问数据库。如果用户不经常使用它,一切正常。但这种行为并非“默认”。需要一些调整经验。但是所有的信息都可以在互联网上获得。有能力的程序员可以毫不费力地使用Jet数据库为数据存储编写多用户应用程序。很好的提示收集-谢谢!我将了解他们已经可以收集到什么样的信息,并从您的建议开始了解更多信息。如果您使用基于文件扩展名的扫描,则应关闭MDB的AV。只有一个实际的野生访问病毒实例,如果您只有一个MDB后端,那么无论如何也不会有任何代码从该MDB运行(因为用户没有在Access中打开它)。当您无法针对Jet Datagase引擎对应用程序进行编程时,对多个用户使用Access有时会带来痛苦。但问题在于不称职,而不是访问/Jet.VB.NET(&VB6)不泄漏内存。(不过,您可以“泄漏”数据库连接)。