
処理が終わったり終わらなかったり。
SQLServerの統計情報や実行計画に関してその挙動の
理解に苦しんでいます。
もし解決のヒントがいただけたらと思い、質問しました。
よろしくお願いします。
使用しているOSはWindows2008Server x64です。
DBはSQLServer2008 EEを用いています。
サーバー機はXeon 2.93MHz QuadCore×2です。
メモリは32GBで、うち20GBをSQLServerに使用させています。
javaのアプリケーション内でJDBCでDBアクセスしています。
処理は
(1)3000万件程度のデータをメモリ上へ
(2)計算処理してファイルへ
(3)ファイルをDBへBulkInsert
というもので、Javaのほうで8並列処理を行わせています。
この処理がどういうわけか(1)のところで動いたりとまったりします。
(止まっているというよりは、極端に遅くなっているというのが
正確かもしれません。)
経験則としては
・大量データを流す前に少量データで疎通を取った場合にとまる。
・大量データ→大量データではとまらない。
・止まったあと、一度スレッドをとめて統計情報を更新後、再度処理を流すと止まらない
というようなものがあります。
利用状況モニタを見ると、 I/O Completion というものが非常に長い時間処理しており、
なぜ状況によってこの処理時間が延びるのかがわかりません。
また、統計情報を更新したといっても、実行計画が殆ど変わらない場合もあります。
ただ、実行計画が殆ど変わらない(xmlにしてDIFFを取ると1行しか変わらない。)場合も、
再実行すると正常時間で処理が終了します。
何かお気づきの点がありましたら、是非ご教授ください。
No.1ベストアンサー
- 回答日時:
SQLのコミットは、どの時点で実行しているのでしょうか? 質問を読むとコミットの可能性は低いですが・・・当たり前過ぎて見過ごすこともあるので参考までに。
1個のSQLでコミットすると非常に遅くなるので、ある程度纏まった時点でコミットしていると思いますが、コミットまでのSQLが大量に貯まるとコミットした時点で大量にメモリを消費して・・・という可能性もあるのでご確認しては?
早速のご回答ありがとうございます。
SQLServerの設定はAutoCommintでした。
TempDBにSelectしたデータを読み込むとき、ご指摘のような事象が起こっていないのか確認してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ 5 2022/11/06 21:34
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- 統計学 どの統計を使えばいいのか教えてください(EZ-Rを使用) 5 2022/10/11 13:28
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Excel(エクセル) エクセルデータ。容量を減らすにはどうしたらいい? 11 2022/12/22 09:01
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- その他(IT・Webサービス) 高速処理可能な表計算ソフトについて ExcelやGoogleスプレッドシートのような表計算ソフトで、 2 2023/04/29 16:06
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- その他(ソフトウェア) F-BASICで計算中の実行が中途で勝手に止まり、大変困っています。 2 2023/03/02 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
他の処理でselectさせないよう...
-
RDBのテーブル種類の違い
-
同じSELECT文同士でのデ...
-
トランザクションのデータ件数...
-
DELETE文でFROM句を省略した場合
-
CLOB型へのINSERT
-
ORA-00959: 表領域'****'は...
-
ACCESS 複数テーブル・複数フィ...
-
SQL*Loaderで、データを加工し...
-
データを削除しても表領域の使...
-
Viewにインデックスは張れ...
-
jspのプログラムについて
-
Access レコードを追加できませ...
-
異なるスキーマからデータを抽...
-
Data Pump で大量データインポ...
-
大量データの取得処理について
-
viewのバックアップ
-
特定のスキーマのテーブルを一...
-
INDEXの無効化
-
postgreSQLのint型は桁数指定が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DELETE文でFROM句を省略した場合
-
他の処理でselectさせないよう...
-
object browser で処理を中断す...
-
RDBのテーブル種類の違い
-
同じSELECT文同士でのデ...
-
PL/SQLの平行処理について
-
年度毎にシーケンスの初期化?
-
[性能改善]AccessのDBに大量の...
-
accessでイベントを中止するよ...
-
C#でトランザクション開始後参...
-
処理速度の見積もり時間について。
-
Oracleから見たOracleの優位性(...
-
チューニング対象のSQLの見つけ...
-
カーソルについて
-
統計情報の取得=コミットですか?
-
Access2013で操作ログを残した...
-
ロングトランザクションについて
-
処理が終わったり終わらなかっ...
-
同一レコード更新時の排他制御
-
トランザクションのデータ件数...
おすすめ情報