从批处理文件调用后,sqlplus 挂起,没有抛出错误消息
sqlplus hangs after being called from a batch file, without throwing up error message
基本上,在我工作的地方,我们 运行 遵循相同基本结构的各种报告流程...
批处理文件调用执行存储过程的 sql 脚本。另一个脚本从 Oracle 中提取数据并写入 csv。最后,一个 excel 宏 运行s 来创建最终输出。
我们最近遇到了一个问题,如果该过程 运行 花费的时间大约超过一个小时,它将无限期挂起,而不会移动到批处理文件的下一行。没有抛出错误信息。
最令人沮丧的部分是某些程序有时会出现问题,然后第二天就没有了。
有没有其他人遇到过这个问题?或者知道是什么导致了这个问题?我觉得这可能是connection/firewall相关的,但这确实不是我的专业领域!
我经常看到这样的问题。我所做的是连接到数据库并通过检查 gV$session 查看 运行ning 是什么。关键是要确定什么 SQL 脚本是 运行ning,然后查看是否有任何原因使其成为 "hung"(有很多可能的原因)。例如,缺少索引;缺少或不是最新的统计数据;实例上的工作负载;阻塞锁; ...
如果您有 SQL Tuning Advisor,您可以 运行 SQL 通过那里获得一些关于解决方案的想法。此外,ADDM 报告可能会提供一些额外的解决方案。
您应该检测批处理文件并使用扩展 SQL 跟踪来揭示您所有时间的去向。没有什么可以逃脱适当的检测。你会找到问题的根源。您如何处理它取决于特定问题(即反模式)。
基本上,在我工作的地方,我们 运行 遵循相同基本结构的各种报告流程...
批处理文件调用执行存储过程的 sql 脚本。另一个脚本从 Oracle 中提取数据并写入 csv。最后,一个 excel 宏 运行s 来创建最终输出。
我们最近遇到了一个问题,如果该过程 运行 花费的时间大约超过一个小时,它将无限期挂起,而不会移动到批处理文件的下一行。没有抛出错误信息。
最令人沮丧的部分是某些程序有时会出现问题,然后第二天就没有了。
有没有其他人遇到过这个问题?或者知道是什么导致了这个问题?我觉得这可能是connection/firewall相关的,但这确实不是我的专业领域!
我经常看到这样的问题。我所做的是连接到数据库并通过检查 gV$session 查看 运行ning 是什么。关键是要确定什么 SQL 脚本是 运行ning,然后查看是否有任何原因使其成为 "hung"(有很多可能的原因)。例如,缺少索引;缺少或不是最新的统计数据;实例上的工作负载;阻塞锁; ... 如果您有 SQL Tuning Advisor,您可以 运行 SQL 通过那里获得一些关于解决方案的想法。此外,ADDM 报告可能会提供一些额外的解决方案。
您应该检测批处理文件并使用扩展 SQL 跟踪来揭示您所有时间的去向。没有什么可以逃脱适当的检测。你会找到问题的根源。您如何处理它取决于特定问题(即反模式)。