如何以递归方式关闭到 sql-database (vertica) 的会话(连接)
How to close sessions (connections) to sql-database (vertica) recursively
我不小心通过 JDBC 驱动程序创建了许多到我们的 vertica 数据库的连接。不可能通过我的 JDBC 驱动程序以编程方式关闭它们,剩下的唯一选择是使用 SQL 查询关闭它们。在 Vertica 中,我想 运行
select close_session(select session_id from sessions where client_hostname like '%.195%');
或
select close_session() from sessions where session_id in (select distinct session_id from sessions where client_hostname like '%.195%');
这两个选项都是错误的,都不起作用。什么是正确的解决方案?
(我不能使用 close_all_sessions(),因为这会终止我同事正在进行的查询。我可以手动关闭 50 个会话,但无论如何了解正确的方法还是很有用的)
首先,问问自己为什么要允许超过 50 个客户端会话?
然后我会准备 CLOSE_SESSION()
语句和 运行 它们:
SELECT E'SELECT CLOSE_SESSION(\'' || session_id || E'\');'
FROM user_sessions
WHERE client_hostname LIKE '%.195%';
我不小心通过 JDBC 驱动程序创建了许多到我们的 vertica 数据库的连接。不可能通过我的 JDBC 驱动程序以编程方式关闭它们,剩下的唯一选择是使用 SQL 查询关闭它们。在 Vertica 中,我想 运行
select close_session(select session_id from sessions where client_hostname like '%.195%');
或
select close_session() from sessions where session_id in (select distinct session_id from sessions where client_hostname like '%.195%');
这两个选项都是错误的,都不起作用。什么是正确的解决方案? (我不能使用 close_all_sessions(),因为这会终止我同事正在进行的查询。我可以手动关闭 50 个会话,但无论如何了解正确的方法还是很有用的)
首先,问问自己为什么要允许超过 50 个客户端会话?
然后我会准备 CLOSE_SESSION()
语句和 运行 它们:
SELECT E'SELECT CLOSE_SESSION(\'' || session_id || E'\');'
FROM user_sessions
WHERE client_hostname LIKE '%.195%';