BASE64変換の処理速度検証を行いました。
BASE64エンコードとBASE64デコードでそれぞれ実施しています。
BASE64変換の処理速度検証
前提条件
・100万件をデコード及びエンコード
・1カラムに200文字
・3回実施した平均値まで求める
BASE64エンコードSQL
SELECT
COUNT(WK.BASE64_ENCODE)
FROM
(
SELECT
UTL_RAW.CAST_TO_VARCHAR2(
UTL_ENCODE.BASE64_ENCODE(
UTL_RAW.CAST_TO_RAW(X.DATA)
)
) AS BASE64_ENCODE
FROM
TB_DATA_ENCODE X
) WK
;
BASE64デコードSQL
SELECT
COUNT(WK.BASE64_DECODE)
FROM
(
SELECT
UTL_RAW.CAST_TO_VARCHAR2(
UTL_ENCODE.BASE64_DECODE(
UTL_RAW.CAST_TO_RAW(X.DATA)
)
) AS BASE64_DECODE
FROM
TB_DATA_DECODE X
) WK
;
検証結果
| 回数/平均 | BASE64エンコード | BASE64デコード |
|---|---|---|
| 1回目 | 66秒 | 65秒 |
| 2回目 | 67秒 | 65秒 |
| 3回目 | 68秒 | 78秒 |
| 平均 | 67秒 | 70秒 |
BASE64エンコード、BASE64デコードの処理速度はあまり変わりませんね。100万件で約70秒なのでまぁまぁな性能です。
ただ、億単位で変換するとなった場合は単純計算で100倍なので7,000秒となります。大量件数を変換する場合はちょっと悩ましいかもしれません。