繁体   English   中英

oracle 11g 中的并行性

[英]Parallelism in oracle 11g

我对 oracle 有疑问,例如,如果您在 Oracle 中有一个函数,则该函数接收一个整数参数。

功能测试(参数IN号)

  • 当我发送 param = 1 -> 返回 100
  • 当我发送 param = 2 -> 返回 300
  • 当我发送 param = 3 -> 返回 200

如果三个或更多用户同时执行测试函数会发生什么,结果是什么?

用户 1:

    select test(1) from dual;

用户 2:

    select test(3) from dual;

用户 3:

    select test(2) from dual;

每个用户得到不同的结果?,虽然函数是同时执行的

如果你有这个功能:

CREATE FUNCTION test ( param IN NUMBER ) RETURN NUMBER
IS
BEGIN
  RETURN CASE param
         WHEN 1 THEN 100
         WHEN 2 THEN 300
         WHEN 3 THEN 200
         END;
END;
/

然后运行:

SELECT test(1),
       test(2),
       test(3)
FROM   DUAL;

输出:

\n测试(1) | 测试(2) | 测试(3)\n ------: |  ------: |  ------:\n     100 |  300 |  200\n

如果您想设置计划作业以便 3 个用户同时运行查询,那么您会发现结果是相同的,并且每个人都得到不同的输出。

db<> 在这里摆弄

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM