ループ内で両方の連結オプションをそれぞれ1億回試行するために、単純な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
の目的についてこれを言います 機能: