我们正在通过 Pro*C 与 DB 进行交互。我们想通过 Pro*C 找出耗时最长的查询。
有没有办法在 Pro*C 中找出长时间运行的查询?
oracle 企业管理器允许您查看正在运行的查询,并让您查看解释计划。
Pro*C 程序应该可以通过 PROGRAM 列在 V$SESSION 中轻松识别。我会更进一步,通过 DBMS_APPLICATION_INFO 显式设置 MODULE,这将允许您跟踪 V$SQL 中的各个 SQL。
一旦您检测了您的代码,使用诊断工具(例如跟踪或您可能通过诊断或调整包支付的任何额外费用)变得更加容易
通过测试 C 之外的查询,例如使用 toad?或者通过使用定时器的普通 C 函数计算它们所花费的时间?
你的问题太模糊,无法给出具体答案。