【问题标题】:Need execution time for a stored procedure存储过程需要执行时间
【发布时间】:2018-07-24 03:19:56
【问题描述】:

我有一个没有 sys_refcursor 返回类型的存储过程。我的要求是获取此存储过程的执行开始和结束时间。我怎样才能做到这一点 ? starttime 应该捕获调用过程的时间。 程序返回响应时的​​结束时间。

PS:- 我的要求是不要在控制台上打印它:- dbms_output.put_line ('启动程序:' || to_char(systimestamp, 'HH24:MI:SS.FF6'));

谢谢

【问题讨论】:

  • 创建一个作为pragma autonomous_transaction 的日志记录过程,将开始和结束时间插入到表中。然后你可以查询那个表
  • 捕获时间是为了调试性能问题,这样做我会引入另一个性能开销。
  • 我和@Kaushik 在一起。如果您有性能问题(显然,您确实有 - 否则您不会打扰),您所说的“开销”是您的问题中最少的。

标签: sql oracle plsql oracle11g


【解决方案1】:

如果您使用的是 MSSQL,那么您可以使用带有过程名称过滤器的 MS SQL Profiler 进行跟踪。对于 mysql,您可以从配置中启用日志。
Always 过程执行时间对我们获得更好的性能没有帮助。还需要关注提交/回滚或连接关闭时间。

【讨论】:

    猜你喜欢
    • 2017-07-10
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    相关资源
    最近更新 更多