« Catalyst::helper、render_file用vim fold | メイン | 5G iPod 80G, HDD換装。無事ふっかつ。 »

DBIC, HashRefInflatorを使うまでもなかった。

DBICというか DBIx::Class ですが、0.8から新しく入ったDBIx::Class::ResultClass::HashRefInflator でも使うかなと思ってたところ ちょこっと弄ったら、全然不要でした。

#    # 0.2 sec
#    $result_rs->search({id => \@ids})->update({folder_id=>$folder_id});

#    # 6 sec
#    for my $id (@ids) {
#        my $result = $result_rs->find({id=>$id}) || die;
#        $result->set_from_related('folder', $folder);
#        $result->update;
#    }

#    # 6 sec
#    for my $id (@ids) {
#        my $result = $result_rs->find({id=>$id}) || die;
#        $result->set_column( folder_id => $folder_id );
#        $result->update;
#    }

@idsは200個ぐらい。 resultはfolderに属している(belongs_to)です。

計測はiTunes再生しながら Benchmark::Stopwatch しましたので不正確ですケド・・・

発行されるSQL文の低減とinflate_resultが無くなったのが要因かにゃ。

トラックバック

このエントリーのトラックバックURL:
http://bokut.in/mt4/mt-tb.cgi/53

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)