我已经对这个主题进行了广泛的研究,并与我的同事进行了深入的讨论。
普遍的共识似乎是,数据库连接应该在需要时打开并立即关闭。任何连接的缓存/池化都应该由数据库驱动程序或其他层完成,而不是由应用程序本身完成。
但我对 Jet/ADO 有疑问。Jet 和/或 ADO 使用可能导致“不同步”连接的读取缓存和延迟写入。当然,每次我使用 JRO 使用它们时,我都可以重新同步连接,但这似乎很麻烦,并且可能会消耗性能。
我应该采用关闭每个连接并重新同步每个新连接的“最佳实践”,还是应该因为 Jet/ADO 怪癖而只采用全局连接对象?