0

私のコードは次のようになります:

static Value findValue(ProjectTouchpoint touchpoint, ProjectQualifier qualifier, ProjectTargetGroup targetGroup)
    {
        def value = Value.findByProjecttouchpointAndProjectqualifierAndProjecttargetgroup(touchpoint,qualifier,targetGroup)
        if(!value) {
            value = new Value(projecttouchpoint:touchpoint, projectqualifier:qualifier, projecttargetgroup:targetGroup, value:0)
              value.save(flush:true)
        }
        return value;
    }

問題: このコード行の実行には約 1 秒かかります。

value = new Value(projecttouchpoint:touchpoint, projectqualifier:qualifier, projecttargetgroup:targetGroup, value:0)

ドメインクラスの新しいインスタンスを作成するだけで、value.save(flush:true) はわずか 0.X 秒かかります (DB 書き込み)

ループで約10kの値を初期化すると、時間がかかります

何か案は?タイ

4

1 に答える 1

0

withTransactionブロック内でループを実行すると役立つはずです

これは、アイデアを示す数年前のブログ投稿です。

于 2012-06-01T10:56:27.217 に答える