加载 SQL 表后使用 odbcClose(channel) 是好习惯吗?

Is it good practice to use odbcClose(channel) after loading the SQL Tables?

参考以下示例:http://www.r-bloggers.com/a-shiny-example-sap-hana-r-and-shiny/

在下面的例子中,他们 运行 odbcClose(ch) 在他们得到他们想要的表之后。将表加载到工作区后使用 odbcClose(channel) 是好习惯吗?在 Shiny 应用程序中使用 SQL 连接时是否应该做任何不同的事情?

library("shiny")
library("RODBC")

ch<-odbcConnect("HANA_TK",uid="SYSTEM",pwd="manager")
odbcQuery(ch,"SELECT table_name from SYS.CS_TABLES_ where schema_name = 'SFLIGHT'")
tables<-sqlGetResults(ch)
**odbcClose(ch)**

shinyUI(pageWithSidebar(

  headerPanel("SAP HANA and R using Shiny"),

  sidebarPanel(
    selectInput("Table", "Choose a table:",
                choices = tables$TABLE_NAME),
    numericInput("Records", "Number of Records to view:", 10)
  ),

  mainPanel(
    tableOutput("view")
  )
))

不过,如果我让它们保持打开状态,我还没有看到出现任何问题。我认为 R 最终会关闭所有未使用的连接。

我不确定是否有系统级的好处,但我已经养成了尽快关闭频道的习惯。

当我的系统管理员需要执行某些任务时,他可能需要关闭服务器,如果有人当前正在访问数据,他会尽量避免这样做。一个打开的连接对他来说就像有人正在访问数据一样,所以他一直等到连接关闭才关闭服务器。如果我留下一个杂散的开放连接,他可能永远不会觉得他可以进行维护。

因此,根据专业礼貌的轶事,我会尽快关闭我的联系。