【问题标题】:How to kill long running queries through Pro*C?如何通过 Pro*C 终止长时间运行的查询?
【发布时间】:2011-02-28 16:55:13
【问题描述】:

我们正在通过 Pro*C 与 DB 进行交互。我们想通过 Pro*C 找出耗时最长的查询。

有没有办法在 Pro*C 中找出长时间运行的查询?

【问题讨论】:

  • 什么是“Pro *C”?你能给一个链接到这个程序的网站吗?你的数据库是什么
  • Pro*C 是嵌入式 oracle 的预处理器。它允许在 C 代码中直接编写 SQL 查询。然后预处理器将它们替换为进行 Oracle API 调用所需的代码。
  • 这不是关于Cpro 标签真的什么都没说。标签已更改。

标签: sql oracle oracle-pro-c


【解决方案1】:

通过测试 C 之外的查询,例如使用 toad? 或者通过定时器的普通 C 函数计算它们所花费的时间?

您的问题太模糊,无法给出具体答案。

【讨论】:

    【解决方案2】:

    Pro*C 程序应该可以通过 PROGRAM 列在 V$SESSION 中轻松识别。我会更进一步,通过 DBMS_APPLICATION_INFO 显式设置 MODULE,这将允许您跟踪 V$SQL 中的各个 SQL。

    检测代码后,使用诊断工具(如跟踪或任何您可能通过诊断或调整包支付的额外费用)变得更加容易

    【讨论】:

    • 好吧 gary 没有 Pro*C 或 Oracle 提供的任何特定功能或机制可以使用我所看到的是每个人都在谈论 'Ctrl+C' 组合,无论如何这样做是完全错误的。是否有任何超时功能可用于在 10 秒后使查询超时并继续下一个查询。另外,我从您在回答中所说的内容中一无所知。如果可能,请告诉我一些可靠的解决方案。
    【解决方案3】:

    oracle 企业管理器允许您查看正在运行的查询,让您查看解释计划。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 2019-08-04
      • 1970-01-01
      相关资源
      最近更新 更多