Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我可以防止PDO中的长查询吗?_Php_Database_Oracle_Timeout_Pdo - Fatal编程技术网

Php 我可以防止PDO中的长查询吗?

Php 我可以防止PDO中的长查询吗?,php,database,oracle,timeout,pdo,Php,Database,Oracle,Timeout,Pdo,如果查询时间过长,有没有办法让PDO对象抛出错误?我尝试过PDO::ATTR_TIMEOUT,但没有效果 我想要一种方法,让查询在运行超过一定时间后抛出错误。这不是我在数据库中可以做的事情,也就是说,没有在数据库上运行的维护作业或其他任何事情。我不确定您是否可以在Oracle中这样做,但我要说的是,在PHP中不可能这样做,因为PHP正在向Oracle发出要运行的查询,然后等待Oracle的响应。也许可以修改PDO扩展以支持此功能,但您需要修改扩展代码(实际的C代码),因为仅在PHP中可能无法做到

如果查询时间过长,有没有办法让PDO对象抛出错误?我尝试过PDO::ATTR_TIMEOUT,但没有效果


我想要一种方法,让查询在运行超过一定时间后抛出错误。这不是我在数据库中可以做的事情,也就是说,没有在数据库上运行的维护作业或其他任何事情。

我不确定您是否可以在Oracle中这样做,但我要说的是,在PHP中不可能这样做,因为PHP正在向Oracle发出要运行的查询,然后等待Oracle的响应。也许可以修改PDO扩展以支持此功能,但您需要修改扩展代码(实际的C代码),因为仅在PHP中可能无法做到这一点。

我不确定您所说的“这不是我在数据库中可以做的事情”是什么意思,但我建议您让管理数据库的人员设置一个Oracle配置文件,以限制数据库方面的操作。有一些参数,如CPU_PER_调用和逻辑_READS_PER_调用,可以限制查询。如果需要,配置文件只能应用于特定用户。

一般来说,我不想停止长时间的查询,只想停止用于监视数据库的查询。啊,我明白了。好的,如果没有客户端解决方案,那么配置文件有点复杂的方法是重新配置应用程序,以便此查询仅由特定用户发出,然后将配置文件仅应用于该用户。