3

我正在编写一些 Python 代码来监视某个目录中的新文件,并使用 cx_Oracle 模块将新文件插入到数据库中。该程序将作为服务运行。在给定时间,可能有许多文件同时到达,但也可能有长达一个小时的时间段没有收到文件。关于良好做法:无限期地保持数据库连接打开是不是很糟糕?一方面,有些事情告诉我这不是一个好主意,但另一方面,为每个接收到的文件创建一个新的数据库对象并在之后关闭它会产生很多开销,尤其是在一次接收到许多文件时。任何有关如何解决此问题的建议将不胜感激。

4

1 回答 1

2

如果您只需要一两个连接,我认为无限期地保持它们打开并没有什么坏处。

对于 Oracle,创建新连接是一项昂贵的操作,这与其他一些数据库不同,例如 MySQL,创建新连接的成本非常低。有时甚至可能需要几秒钟才能连接,如果某些应用程序过于频繁地关闭和打开连接,这可能会成为一些瓶颈。

Oracle 上的空闲连接使用少量内存,但除此之外,它在空闲时不会消耗任何其他资源。

为了让您的 DBA 满意,您需要确保没有大量空闲连接处于打开状态,但我会很高兴有一两个。

于 2012-07-05T15:36:55.243 回答