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秒となります。大量件数を変換する場合はちょっと悩ましいかもしれません。