【发布时间】:2020-08-16 06:55:01
【问题描述】:
我有一个 Redshift 数据库,我在一个由 Jupyter Notebooks 证实的 Docker 映像中运行 RStudio。
我添加了 ODBC 驱动程序并安装了 odbc 包作为启动 Docker 实例的命令的一部分。
我担心的是我最终与数据库有太多打开的连接。
我担心有许多长期存在的连接,因为它们可能会锁定我的表。我查看了 odbc 和 RPostgreSQL 的文档,但没有看到任何关于超时或清除所有连接的方法。
如何防止从 RStudio 到 PostgreSQL 的长期连接过多?
【问题讨论】:
-
这取决于应用程序和服务器配置。如果应用程序没有在需要时关闭连接,没有做足够的
tryCatch和/或on.exit工作以确保连接处于预期状态,那么事情可能会“悬空”。如果服务器让 R 进程运行应用程序的时间过长,那么具有许多连接的应用程序可能会存在很长时间。您可能会考虑使用pool包,尽管它不足以替代连接管理。 -
太棒了!您对允许事物悬挂的数据库的描述是准确的。我可以将
pool与odbc一起使用吗? -
是的,您提供给
pool的参数会直接传递给您喜欢使用的任何(DBI) 驱动程序,其中odbc。 (我每天都使用那个组合。) -
太棒了!您想将其添加为答案,以便我将其标记为正确吗?
标签: r postgresql docker odbc rstudio