我是否应该为事件处理程序保持数据库连接处于打开状态?



我正在用C#编写一个应用程序,该应用程序将通过ODBC连接到PostgreSQL数据库。 数据库将与我的应用程序位于同一台计算机上。 我的应用程序将有一个每秒可能触发几次的事件处理程序。 处理程序会将两个值写入数据库表。 我想知道我是否应该在应用程序启动时打开一次数据库连接以供事件处理程序使用,或者我是否应该在事件处理程序中打开它并在处理程序完成其工作时关闭它。

如果使用连接池,这个问题就变得没有意义了,因为如果现有连接可用,将始终使用现有连接,我可以打开和关闭连接,而不必担心减慢我的应用程序速度。 但似乎 PostgreSQL 的 ODBC 驱动程序不支持连接池。还是吗?

我正在使用PostgreSQL Unicode驱动程序版本9.03.04.00。

谢谢。

切勿为每个请求打开和关闭数据库连接。只要交通很少,它就可以工作,但否则它是灾难的接收者。

您可以使用像 pgBadger 这样的外部连接池,但如果这在您的情况下是矫枉过正的,只需保持连接打开即可。每秒写入几次,这显然是正确的做法。

最新更新