You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python获取Neo4j所有会话中运行超2分钟的活跃查询?

解决Neo4j dbms.listQueries()仅返回当前会话查询的问题

问题原因

调用CALL dbms.listQueries()只能获取当前会话的查询,核心原因是普通权限用户仅能查看自身会话的查询数据,无法访问其他会话的运行状态,所以你另一个脚本的无限循环查询不会被返回。

解决方案

  • 授予全局监控权限:给执行查询的用户分配DBMS_MONITOR角色(只读监控权限,比全权限的DBMS_ADMIN更安全),执行授权语句:

    GRANT ROLE DBMS_MONITOR TO [你的用户名];
    

    授权完成后,重新执行原代码即可捕获所有会话的活跃查询。

  • 直接筛选长时长查询:在Cypher语句中直接过滤运行时长超过2分钟的查询,无需后续代码二次处理,效率更高:

    CALL dbms.listQueries()
    WHERE elapsedTimeMillis > 120000 // 2分钟=120000毫秒
    YIELD queryId, query, elapsedTimeMillis, username, sessionId
    RETURN queryId, query, elapsedTimeMillis, username, sessionId
    

内容的提问来源于stack exchange,提问作者Syed Muhammad Ibrahim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:35:19