gpt4 book ai didi

Java Springboot Hibernate 设置 Oracle 数据库 session 参数

转载 作者:行者123 更新时间:2023-12-04 14:51:23 25 4
gpt4 key购买 nike

我们的数据库管理员已推荐我更改其 session 的特定微服务。

alter session set optimizer_dynamic_sampling=2;

微服务服务于一个非常特殊的用例,它正在搜索大量订单(数据分为 3 个表),因此它可以将分页结果返回给用户,在 SQL 开发人员 session 中使此 session 更改查询时间后被切成两半。

我们的微服务是基于 Java Springboot 的,我们使用的是 JPA(Hibernate 实现),这是一个连接到的 Oracle 数据库。正在运行的查询是 native 查询。我只需要更改一次 session 。出于明显的性能原因,我不想每次运行查询时都运行 alter 语句。也就是说,我如何确保 JPA 在我的池中创建的每个连接都使用此属性更新其相应的 session ?似乎实体管理器工厂或实体管理器可以提供这个..只是无法找到关于它的详细文档。

进一步注意.. 根据当前的实现(该服务已经存在 2 年了),每次运行 native 查询时都会创建和关闭实体管理器。尚无法确定这是否会使性能复杂化甚至导致性能下降。

欢迎所有提示/想法。谢谢!

最佳答案

经过一番尝试后,我发现这个 alter session 语句实际上可以作为 SQL 提示内联添加。

SELECT /*+ dynamic_sampling(2) */ <your columns and rest of query>

因此,我会将此提示添加到当前正在运行的 native 查询中。没有很多关于此提示语法的文档,因此进行了一些试验和错误。

关于Java Springboot Hibernate 设置 Oracle 数据库 session 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69036907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com