Php 具有持久连接的PDO_OCI(Oracle)-有没有设置最大持久、持久超时等的方法。?

Php 具有持久连接的PDO_OCI(Oracle)-有没有设置最大持久、持久超时等的方法。?,php,oracle,pdo,oci8,Php,Oracle,Pdo,Oci8,我使用带有PDO_OCI扩展的PHP7.4连接到Oracle 19c(在Windows上使用Oracle即时客户端) 这一切都很好,但是我注意到连接到数据库有点慢,如果我切换到使用持久连接(PDO::ATTR_persistent=>TRUE),PHP页面的打开速度会显著加快 我的问题是:这是可配置的吗? 使用标准Oracle OCI8模块时,PHP.ini中有如下设置:修改持久连接行为的OCI8.max_persistent、OCI8.persistent_timeout或OCI8.ping_

我使用带有PDO_OCI扩展的PHP7.4连接到Oracle 19c(在Windows上使用Oracle即时客户端)

这一切都很好,但是我注意到连接到数据库有点慢,如果我切换到使用持久连接(PDO::ATTR_persistent=>TRUE),PHP页面的打开速度会显著加快

我的问题是:这是可配置的吗?


使用标准Oracle OCI8模块时,PHP.ini中有如下设置:修改持久连接行为的OCI8.max_persistentOCI8.persistent_timeoutOCI8.ping_interval。。。PDO_OCI是否有任何等价物?我只是有点担心一些bug会导致数千个僵尸连接被创建…

PDO_OCI的功能不如OCI8。通用PDO层设计也增加了一些开销。总的来说,我建议使用OCI8——如果有帮助的话,有一些简单的包装可以使它看起来像PDO

每次脚本从连接缓存获得持久连接时,PDO似乎都会对DB进行ping操作——时间是不可配置的,因此对于活动应用程序的最终可扩展性来说,PDO并不理想。使用OCI8,您可以选择计时

如果你的应用程序是以一个DB用户的身份连接的,我不会太担心max_persistent。最佳实践是仔细控制运行的PHP进程的数量,因为每个进程都有一个到DB的开放连接


使用这两个驱动程序,您可以设置各种Oracle Net参数来配置超时、死连接检测、连接风暴等。您可能需要了解这些。有一些基本文档提供了一个概述。

您应该能够在ini文件中更改它,如下所述->