确保php会话在使用oci_pconnect时获得相同的oracle会话

确保php会话在使用oci_pconnect时获得相同的oracle会话,php,oracle,session,persistent-connection,Php,Oracle,Session,Persistent Connection,我想使用全局临时表来存储一些昂贵的中间数据。数据是暂时的,但在php会话期间是有效的,因此使用全局临时表和提交保留行上的似乎是理想的 但是。。全局临时表数据似乎只对创建它的oracle会话可用 因此,这就提出了一个问题:我如何确保oci_pconnect能够返回相同的oracle会话,正如我所读到的,oracle会话对于每个持久连接都是唯一的?我对跨多个php执行使用事务不感兴趣,只对临时表感兴趣 我使用php会话,因此可以将其用作选择oracle会话的标识符 到目前为止,这似乎是不可能的,但问

我想使用全局临时表来存储一些昂贵的中间数据。数据是暂时的,但在php会话期间是有效的,因此使用全局临时表和提交保留行上的
似乎是理想的

但是。。全局临时表数据似乎只对创建它的oracle会话可用

因此,这就提出了一个问题:我如何确保oci_pconnect能够返回相同的oracle会话,正如我所读到的,oracle会话对于每个持久连接都是唯一的?我对跨多个php执行使用事务不感兴趣,只对临时表感兴趣

我使用php会话,因此可以将其用作选择oracle会话的标识符

到目前为止,这似乎是不可能的,但问问也无妨

编辑: 实现此功能的目的是加速访问我的访问控制中使用的用户组成员信息。
提前解析组成员身份并使用此临时数据,可以在所有后续查询中消除3+层连接。 由于返回的密钥是
原始的
,将它们序列化到外部存储器会导致再次使用时调用
HEXTORAW()
,并且似乎对预期用途没有帮助

添加用于确定组级访问的查询部分在会话期间是静态的,并自行运行,返回大约600行唯一的16字节
RAW
键。然后通过链接表将这些键与结果集连接起来,以确定用户是否对结果集具有任何“组级别”权限

我尝试了使用IN并将键作为字符串传入,但由于它们是原始键,因此每次查询我必须调用
HEXTORAW()
600次。性能远不如使用临时表和执行
连接


有没有其他方法可以告诉Oracle保留缓存的查询部分的结果,而不将其写入“永久”中间结果?

尽管您可能会想出一些技巧来实现这一点,至少在某些时候,我认为这几乎肯定会在某个时候引起问题,尤其是在从开发服务器过渡到生产服务器时。选项可能包括:

  • 使用永久表,并在逻辑上完成数据处理后清除数据
  • 将数据写入平面文件,然后在需要时将其读回
  • 将数据写入平面文件,然后将该文件作为外部表装入
    共享和享受。

    数据库驻留连接池如何。我想这就是你要找的。试试看

    就我的预期用途而言,看起来我可能被#1卡住了。