存储过程的标量子查询
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
此设置主要对 Oracle 数据库有用,Oracle 数据库实现了一个名为 标量子查询缓存 的功能,这是一个很好的工具,可以避免谓词使用存储函数调用时昂贵的 PL/SQL 到 SQL 上下文切换。
启用此设置后,嵌入在 SQL 语句中的所有存储函数调用都将包装在标量子查询中
SELECT (SELECT my_package.format(LANGUAGE_ID) FROM dual) FROM BOOK
DSL.using(configuration) .select(MyPackage.format(BOOK.LANGUAGE_ID)) .from(BOOK)
如果我们的表包含数千本书,但只有十几个 LANGUAGE_ID
值,那么使用标量子查询缓存,我们可以避免大部分函数调用并缓存每个 LANGUAGE_ID
的结果。
示例配置
Settings settings = new Settings() .withRenderScalarSubqueriesForStoredFunctions(true);
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的意见!