|
■BLOBのインサートテスト (2004/1/17 林 務) |
|
|
firebird-jp-generalに投稿した、BLOBのインサートに関するテストプログラムとレポートです。 BLOB_INSERT_TEST_0-2.LZH (IBX版) ・使用方法 ②DM_BLob.iniを編集して下さい。 [DATABASE] 説明の必要はないかと思いますが、先ほどのファイル配置に合わせて変更し、またIDとパスワードを適宜設定して下さい。 ③BlobIns.exeを実行して下さい。 ■テスト(1) — Delphi6 + IBX6.08 サーバはローカルのFirebird 1.0.3へ マシンスペックは、Pentium4 2.4G + Mem 1GB + Diskは新品のSeagate 160GBです。 10万レコードのインサートを行った結果が以下のようになりました。
— 100000回 Insert の平均 : 21.23ミリ秒 ファイルのサイズは以下のようになりました。 2004/01/17 14:21 2,048,008,192 BLOB1.FDB ■テスト(1)-2 — Delphi6 + IBX6.08 10万行インサート後の追加 テスト結果(1)の10万行インサート後に、再度コネクトし100行のインサートを行った。 — 100回 Insert の平均 : 30.05ミリ秒 ■テスト(1)-3 — Delphi6 + IBX6.08 with Firebird 1.5 RC8 テスト(1)-1と同一の内容を、Firebird 1.5 RC8で行った結果。
— 100000回 Insert の平均 : 10.75ミリ秒 ■テスト(1)-4 — Delphi6 + IBX6.08 with Firebird 1.5 RC8 1万行インサート後の追加 テスト(1)-2と同一の内容を、Firebird 1.5 RC8で行った結果。
— 100回 Insert の平均 : 16.47ミリ秒 ■テスト(2) — Delphi6 + BDE BDE版の結果です。接続方法をBDEに変更した他、BDEでのLocalhost指定がエラーとなるため、ローカル接続で計測しました。 — 100000回 Insert の平均 : 33.99ミリ秒 ■テスト(2)-2 — Delphi6 + BDE 10万行インサート後の追加 テスト結果(2)の10万行インサート後に、再度コネクトし100行のインサートを行った。 — 100回 Insert の平均 : 2006.08ミリ秒 ログは以下のようになっています。 0回目Insert時間 — 198465ミリ秒 ■テスト(2)-3 — Delphi6 + BDE with Firebird 1.5 RC8 テスト(2)-1と同一の内容を、Firebird 1.5 RC8で行った結果。 — 100000回 Insert の平均 : 22.01ミリ秒 ■テスト(2)-4 — Delphi6 + BDE with Firebird 1.5 RC8 10万行インサート後の追加 テスト(2)-2と同一の内容を、Firebird 1.5 RC8で行った結果。 — 100回 Insert の平均 : 2023.61ミリ秒 ■考察 テスト(1)とテスト(2)で有意に差があるのが、10万件インサート後の再インサート時の問題です。BDEでは、0からのインサートではIBXより遅いものの平均してそれなりの速度でインサートに成功しています。しかし、いったん切断した後で再接続しインサートしようとした場合、1件目のインサートで極端に遅くなります。IBXも確かに再接続後の1件目が少し遅いのですが、問題とならない範囲です。 |
旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。
過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=64