gpt4 book ai didi

c - 终止长时间运行的进程

转载 作者:行者123 更新时间:2023-11-30 14:29:10 25 4
gpt4 key购买 nike

您好,我在 Solaris 上使用 C。我有一个连接到数据库的进程。我需要确定同一进程是否长时间运行同一查询(例如 15 秒),然后我需要断开并重新建立数据库连接。

I know I can check for the same processes with the process id's. But I am more concerned about in knowing how to determine if a same process is running the same query?

任何帮助都是非常值得感激的。

最佳答案

“我需要确定同一进程是否长时间运行同一查询(例如 15 秒),然后我需要断开并重新建立数据库连接。”

不确定您要解决什么问题。

如果断开连接,则数据库 session 可能会持续一段时间。也可能仍然持有锁。

此外,如果 PL/SQL block 正在循环并运行 1000 个查询,每个查询花费十分之一秒,那么对于您的中止逻辑,这是否应该算作 1 个语句?

您可以查看 V$SESSION 和 SQL_ID 或 SQL_HASH_VALUE。然后十五秒后再次检查,看看是否发生了变化。您还可以查看 v$sessstat/v$statname 等“执行计数”或“用户调用”之类的内容来确定是同一 SQL 长时间运行还是多次 SQL 调用。

关于c - 终止长时间运行的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5183587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com