【问题标题】:Is it good practice to use odbcClose(channel) after loading the SQL Tables?加载 SQL 表后使用 odbcClose(channel) 是一种好习惯吗?
【发布时间】:2015-10-20 12:46:55
【问题描述】:

引用以下示例: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 shiny rodbc


    【解决方案1】:

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

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

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

    因此,出于职业礼貌的轶事,我会尽快关闭我的联系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 2013-03-30
      • 2015-09-02
      • 2010-09-27
      • 2015-02-18
      • 2016-03-20
      • 1970-01-01
      相关资源
      最近更新 更多