我应该为事件处理程序打开数据库连接吗?

时间:2017-07-21 20:08:04

标签: c# postgresql connection-pooling

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

如果使用连接池,那么问题就没那么了,因为如果有可用的话,总会使用现有的连接,而我可以打开和关闭连接,而不必担心减慢我的应用程序。但似乎PostgreSQL的ODBC驱动程序不支持连接池。或者是吗?

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

非常感谢。

1 个答案:

答案 0 :(得分:2)

从不为每个请求打开和关闭数据库连接。只要流量很小,它就可以工作,但是否则它就是灾难。

您可以使用像pgBadger这样的外部连接池,但如果在您的情况下这样做太过分,请保持连接处于打开状态。每秒多次写入显然是正确的做法。