gpt4 book ai didi

sql - SQL 查询中函数调用的性能影响(关于上下文切换)

转载 作者:行者123 更新时间:2023-12-02 01:31:49 26 4
gpt4 key购买 nike

由于 SQL 和 PL/SQL 引擎之间的上下文切换,在 SQL 语句中调用函数是否有任何性能影响?还是潜在影响取决于所调用的函数?

  1. 调用内置函数:
select dbms_crypto.hash(utl_raw.cast_to_raw(COLUMN),1) from TABLE_NM;
  1. 调用 PL/SQL 函数:
create or replace package PCK as  function doSomething(val varchar2) return varchar2;end PCK;select PCK.doSomething(COLUMN) from TABLE_NM

函数调用是否有性能开销?谢谢。

最佳答案

Calling built-in functions:

这取决于。但是,大多数 native SQL 函数内置函数 都在低级“C 语言”中作为单个模块编译在Oracle 内核。例如,CASEUPPER 函数在两个引擎之间不会有任何上下文切换,因为我说过它们在一个模块中。

嗯,有一些内置函数是异常(exception)的,比如 SYSDATEUSER 等。Thomas Kyte 已经很好地解释了它 here .

Calling PL/SQL functions

PL/SQL 中的 SQL 调用,反之亦然,即 SQL 中的 PL/SQL 调用 需要上下文切换。存在从 SQL 到 PLSQL 的调用开销(当 SQL 调用 PLSQL 时“命中”最明显 - 而不是其他方式,当 SQL 嵌入到 PLSQL 中时)。

关于sql - SQL 查询中函数调用的性能影响(关于上下文切换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754269/

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