1

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

我写了一个应用程序来严重减慢我的机器,它对我来说仍然比为少数客户运行得更好。此外,我的 Access 数据库从未被此应用程序破坏。

有什么建议么?

谢谢!!

4

4 回答 4

2

我们也有类似的经历,大多数情况是杀毒引起的。他们经常检查文件(每次访问文件时都会有一些反病毒)。

于 2008-11-11T17:23:25.140 回答
2

在更新访问数据库时重新启动可能会破坏它。

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

  • 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
于 2008-11-11T18:32:43.347 回答
0

不,VB.Net 与 Access 配合得很好。SHARED 环境将丢弃访问。

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

于 2008-11-11T17:20:13.663 回答
-1

对我来说听起来像是一个很大的内存泄漏。

一些客户会让您的应用程序运行的时间比其他客户更长,并且会受到更大的打击。

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

于 2008-11-11T17:22:21.583 回答