NJDB BatchInsertで複数ロギング
DB_BatchInsertとは
構造体のデータをリングバッファに一時的に格納します
データベースにInsertするときにリングバッファからデータを読み出してDB_BatchInsert命令を実行します
DB_BatchInsert命令は複数のレコードを一括挿入する命令なのでリングバッファに溜まっているデータを複数読みだしてDBに一括挿入することで挿入時間の短縮が期待できます

DB_Insertとの違い
| 方式 | 特徴 |
|---|---|
| DB_Insert | 1レコードずつ追加 |
| DB_BatchInsert | 複数レコードを一括追加 |
DB_BatchInsertは大量データの保存に向いています。 通信回数を削減できるためデータベース負荷を低減できます。
DB_BatchInsertのメリット
- 通信回数を削減できる
- 大量データを高速保存できる
- データベース負荷を軽減できる
- 長期間のロギングに向いている
使用するファンクション
リングバッファのファンクションを使います


ロギング用構造体

ラダープログラム例

リングバッファにレコードがあればDBに接続します
構造体とDBのテーブルをマッピングし、構造体にリングバッファに溜まっているデータをセットします
ここでは一回にInsertするレコード数は1000レコードまでとしています
DB_BatchInsert命令を実行してクローズします
よくある質問
DB_InsertとDB_BatchInsertはどちらが速いですか?
大量データの場合はDB_BatchInsertの方が高速です。通信回数を減らせるため処理負荷も低減できます。
一度に何件登録できますか?
PLCメモリ容量やデータベース設定によります。サンプルでは1000レコードを上限としています。
リングバッファは必須ですか?
必須ではありませんが、高速収集とDB通信を分離できるため推奨します。
ダウンロード
このサイトが役に立ったと感じたら、ご支援いただけると嬉しいです
