AI による要約
この動画では、FileMaker の [トランザクションを開く] スクリプトステップを活用して、[Loop] 処理を高速化する方法を紹介しています。大量のレコードを一括処理する際のパフォーマンス改善を検討している方におすすめの内容です。
通常の [Loop] 処理では、レコードの作成や更新が 1件ずつサーバーと通信しながら行われるため、件数が多いほど処理時間がかかります。[トランザクションを開く] と [トランザクション確定] の間に [Loop] 処理を配置することで、まとめてデータを確定できるようになり、特にクラウド環境の FileMaker Server においては処理速度の大幅な改善が見込まれます。ローカル環境ではほぼ差がありませんが、サーバー環境での比較では明確な速度差が確認できました。
ただし、トランザクション処理にはいくつかの注意点があります。
1つ目は、エラー発生時の復帰(ロールバック)の扱いです。通常の処理では途中までの結果が保存されますが、トランザクション処理では 1つのエラーで全件が取り消されます。エラーを無視して最後まで実行させたい場合は [エラー時のトランザクション復帰設定] を [オフ] にする必要があります。
2つ目は、シリアル番号の欠番です。ロールバックが発生しても、トランザクション中に自動入力で発番されたシリアル番号は元に戻りません。厳密な連番が必要な場合は、自動入力オプションに頼らず採番処理を工夫する必要があります。
3つ目は、途中のレコード確定は無視されるという点です。トランザクション中にレコード確定を実行しても内部的には無視され、すべてのデータは [トランザクション確定] のタイミングでまとめて保存されます。
4つ目として、一部の操作はトランザクションによる復帰の対象外となる場合があります。スクリプト設計の際には注意が必要です。
処理速度を意識したスクリプト設計のヒントとして、ぜひ参考にしてください。