我不是一个出色的 VB 程序员,但我的任务是维护/增强使用 Sybase ASE 作为后端的 VB6 桌面应用程序。这个应用程序有大约 500 个用户。
最近,我向这个应用程序添加了功能,它对数据库中的单行执行额外的插入/更新,关键字段是事务号,并且该字段被索引。正在更新的表中通常有大约 6000 条记录,因为在事务完成时会删除记录。部署后,在用户报告性能缓慢之前,该应用程序可以正常运行一天半。
最终,我们将性能问题追溯到数据库中的表锁,不得不回滚到应用程序的先前版本。使用的第一天是周一,一般是系统使用非常繁重的一天,所以我很困惑为什么当天没有出现问题。
在现有的代码中,有一个启动 Sybase 事务的调用。在 BeginTrans 和 CommitTrans 之间的块中,有一个对更新数据库的 DLL 文件的调用。我将新代码放在 DLL 的类模块中。
我很困惑为什么对单行的单个插入/更新会导致这样的问题,特别是因为系统在更改之前工作正常。有没有可能我在这里暴露了一个更大的问题?或者我只需要重新考虑我的方法?
提前感谢任何遇到类似情况并可以提供建议的人。