2009-08-21 46 views
6

如果查询时间过长,有什么办法可以使PDO对象抛出错误?我已经尝试PDO :: ATTR_TIMEOUT没有效果。我可以阻止PDO中的长查询吗?

我想办法把它是否正在运行超过一定量的时间较长的查询抛出一个错误。这不是我在数据库中可以做的事情,即没有在数据库上运行维护作业或任何事情。

回答

3

我不知道你所说的“这不是东西,我可以在数据库中做”的意思,但我会建议你有管理数据库设置Oracle的个人资料的限制这个数据库上侧。有些参数可以限制查询,如CPU_PER_CALL和LOGICAL_READS_PER_CALL。如果需要,配置文件只能应用于特定的用户。

+0

这不长的查询总的来说,我想停下来,但仅这一项是用于监控数据库。 – 2009-08-21 19:10:24

+0

啊,我明白了。那么,如果没有客户端解决方案,与型材有点令人费解的办法是重新配置应用程序,使这个查询只能由特定的用户发出,然后配置文件只适用于该用户。 – dpbradley 2009-08-21 19:18:06

2

我不知道你是否能在Oracle中这样做,但我会说这是不可能在PHP做,因为PHP是发出查询到Oracle要运行,然后等待Oracle的响应返回。有可能修改PDO扩展来支持这一点,但是您需要修改扩展代码(实际的C代码),因为在PHP中可能没有办法做到这一点。

相关问题