リアルタイムにデータが発生し、Sybase IQ(15.2)のテーブルに随時レコード追加する処理のパフォーマンス改善をしたいです。
Javaでプログラムを書いていて、1スレッドで処理をしていたのですが、レコード総数が多くなってきたせいか処理が重くなってきました。
ですので複数スレッド・コネクションでINSERT文を実行するように修正したところ、以下のエラーが発生しました。
「SQL Anywhere エラー -210 : テーブル名 のローは、ユーザ '別のユーザ' によってロックされています。」
INSERTしているだけなのですが、テーブル全体をロックしているのかエラーが発生してしまいます。
数十件くらいのINSERT文をバッチ処理(executeBatch)で実行するということを、各スレッドで数秒間隔で行っています。UPDATEは一切行いません。
Sybase IQで、複数のコネクションで並列してINSERT文を実行するということはできないのでしょうか?
また他に改善方法がありましたら教えてください。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ファイルにデータを書き出すときに2つ以上が同時に書き込むと
ファイルが壊れます。
複数が書き込む処理を1つずつ処理するように制御しているというのが
データベースの1つの特徴ですので、言われるような処理はできません。
1つ、あるとすれば一連のINSERTが終了次第、COMMITを挟んでおくと
スレッドの終了を待たなくてもいいので速くなったりエラーが出にくくなるかもしれません。
回答ありがとうございます。
COMMITは挟んでいるのですが発生してしまいます。
Sybase IQへのINSERTが極端に遅いというのが原因なのですが、改善策を考え中です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PostgreSQL SQLでUPSERTを一度に複数行やる方法 3 2022/03/25 15:17
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
RDBのテーブル種類の違い
-
object browser で処理を中断す...
-
他の処理でselectさせないよう...
-
[性能改善]AccessのDBに大量の...
-
Oracleから見たOracleの優位性(...
-
DELETE文でFROM句を省略した場合
-
テーブル名を指定してCsv出力
-
チューニング対象のSQLの見つけ...
-
accessでイベントを中止するよ...
-
PL/SQLの平行処理について
-
年度毎にシーケンスの初期化?
-
Viewにインデックスは張れ...
-
データを削除しても表領域の使...
-
ACCESS 複数テーブル・複数フィ...
-
CLOB型へのINSERT
-
異なるスキーマからデータを抽...
-
ORA-00959: 表領域'****'は...
-
テーブル名を[]でくくらないと...
-
特定のスキーマのテーブルを一...
-
エクセルからアクセスにインポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DELETE文でFROM句を省略した場合
-
他の処理でselectさせないよう...
-
RDBのテーブル種類の違い
-
同じSELECT文同士でのデ...
-
accessでイベントを中止するよ...
-
object browser で処理を中断す...
-
統計情報の取得=コミットですか?
-
DBリンクエラーについて
-
[性能改善]AccessのDBに大量の...
-
ActiveX DLLでのオラクルのトラ...
-
Oracleから見たOracleの優位性(...
-
処理速度の見積もり時間について。
-
9i→10gバージョンアップ時のト...
-
PL/SQLの平行処理について
-
年度毎にシーケンスの初期化?
-
同一レコード更新時の排他制御
-
バッチ更新のレスポンスが悪い...
-
Access2013で操作ログを残した...
-
チューニング対象のSQLの見つけ...
-
トリガーでロールバックは可能?
おすすめ情報