如何在R中中断RPostgresql查询

如何在R中中断RPostgresql查询,r,postgresql,rpostgresql,R,Postgresql,Rpostgresql,在RPostgresql中中断长时间运行的查询的最佳方法是什么 例如,我想查看表格的前10行,并打算键入 dbGetQuery(con," select * from big.table limit 10 ") 但我有时会忽略“限制10”,然后我的程序永远运行。从我的R终端点击ctrl-C或停止按钮不起作用。我必须等待很长时间,然后才能看到完整的输出打印,或者可以中止R过程。您可以尝试使用psql连接到Postgres,在select*from pg\u stat\u act

在RPostgresql中中断长时间运行的查询的最佳方法是什么

例如,我想查看表格的前10行,并打算键入

  dbGetQuery(con,"
  select * from big.table
  limit 10
  ") 

但我有时会忽略“限制10”,然后我的程序永远运行。从我的R终端点击ctrl-C或停止按钮不起作用。我必须等待很长时间,然后才能看到完整的输出打印,或者可以中止R过程。

您可以尝试使用
psql
连接到Postgres,在
select*from pg\u stat\u activity
中查找查询,然后使用
选择pg\u cancel\u backend(long\u query\u pid)
取消查询


或者您可以在R中使用此查询。

使用。它一次获取一行数据,因此您可以轻松地在任何时候中断它。

有没有一种方法可以在R中实现这一点,而无需通过psql(或RPostgresql)?奇怪的是,这种安全性使得我没有权限取消服务器上的查询(甚至我自己的查询)。取消查询的唯一方法是关闭我的客户端。@dchandler您可以从任何可以执行查询的对象执行此查询。我提到psql仅仅是因为它通常是可感知的。关于权限,这是手册所说的:“您可以对另一个后端执行此操作,该后端的角色与调用函数的用户完全相同。在所有其他情况下,您必须是超级用户。”@dchandler发现手册中的引用适用于9.2或更高版本。在9.1或更早版本中,仅限超级用户使用。@IgorRomanchenko感谢您的建议。我认为您的第一个答案很好,如果权限允许,它会工作。我可以使用此库添加一些额外增加的超时吗?