oracle concat和,concat和||之間是否存在性能差異?在oracle

我設置了一個簡單的PL/SQL腳本(下面)來嘗試每個循環中的兩個級聯選項。 ||的結果是142.93秒,而CONCAT是144.11秒。無論哪種方式,您每次操作大約需要1.4微秒。我的結論是,似乎沒有任何明顯的性能差異。

除了更易讀,||是連接運算符的ANSI標準。

DECLARE

i NUMBER;

j NUMBER := 100000000;

v VARCHAR2 (1000);

v_start TIMESTAMP := SYSTIMESTAMP;

BEGIN

FOR i IN 1 .. j LOOP

v := DBMS_RANDOM.VALUE() || DBMS_RANDOM.VALUE();

END LOOP;

DBMS_OUTPUT.put_line ('1: ' || (SYSTIMESTAMP - v_start));

END;

DECLARE

i NUMBER;

j NUMBER := 100000000;

v VARCHAR2 (1000);

v_start TIMESTAMP := SYSTIMESTAMP;

BEGIN

FOR i IN 1 .. j LOOP

v := CONCAT (DBMS_RANDOM.VALUE(), DBMS_RANDOM.VALUE());

END LOOP;

DBMS_OUTPUT.put_line ('2: ' || (SYSTIMESTAMP - v_start));

END;

作爲一個註腳,Oracle說CONCAT函數的本約的目的:

當移動具有不同 的字符集,比如ASCII之間的系統間的SQL腳本文件和EBCDIC,豎線可能不會被翻譯成目標所需的豎線 數據庫env ironment。 Oracle提供了CONCAT字符功能 到垂直杆操作者對情況的替代,當它是通過操作 系統或網絡公用程序執行 難以或不可能控制翻譯。在 將環境之間具有不同的字符集的移動應用程序使用此功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值