MSSQLサーバ利用時にCPU利用率が上昇する
作成日:2010年3月24日 | 更新日:2020年5月21日
【ご質問】
DBにMicrosoft SQL Serverを利用した場合、CPU利用率が上昇します。
また、以下のディレクトリにあるログファイルを参照すると、
「|com.adventnet.persistence.DataAccessException: java.sql.SQLException: 文字列から日付と時刻、
またはそのいずれかへの変換中に、変換が失敗しました。」というメッセージが続けて表示されており、
ログファイルの容量が増大しています。対応方法を教えてください。
(Xは0-9の整数です。)
【回答】
<原因>
こちらは、英語以外のMicrosoft SQL Server を利用した場合に発生します。
"us_english" の日付/時刻フォーマットで計算された日付/時刻データを、英語以外(本件の場合は日本語)の言語の
データベースに挿入する際に実行するフォーマットの変換クエリの実行に時間がかかり、CPU使用率が上昇することが原因です。またこのクエリは10分ごとに実行されるため、CPU利用率が上昇する現象が発生します。
<回避策>
以下の手順を実行していただくことで、本件の問題を回避できます。
1. EventLog Analyzerのサービスを停止します。
* タスク マネージャから、"SysEvtCol.exe" のプロセスが終了していることをご確認ください。
2. Microsoft SQL Serverの「Microsoft SQL Server Management Studio」を開きます、
3. 「eventlog」DBを選択してクエリエディタを開きます。
4. 以下の2つのクエリを順番に実行します。
①新規でSQL Server ログインを作成します。
(「eventlog」DBを既定のデータベース、「English」を既定の言語とします。)
? exec sp_addlogin '<ログイン名>', '<パスワード>', 'eventlog', 'us_english'
? 例:exec sp_addlogin 'test', 'test', 'eventlog', 'us_english'
②「eventlog」DBに新しいユーザを作成します(DBロール=db_owner)
? exec sp_adduser '<ログイン名>', '<DBのユーザ名>, 'db_owner'
? 例: exec sp_adduser 'test', 'test', 'db_owner'
5. コマンドプロンプトを開き、以下のディレクトリに移動します。
? [EventLog Analyzer インストールディレクトリ]tools
6. changeDBServer.bat を実行します
cmd>changeDBServer.bat
7. 「User Name」と「Password」に、上記手順4.で作成したログイン情報を指定します。
(上記例の場合、User Name/Password に "test"を指定します)
8. 「Test」ボタンをクリックして接続を確認します。
9. 次に、「Save」をクリックし、「了解」をクリックします。
10. 次に、「了解」ボタンをクリックして、ウィザードを終了します。
11. EventLog Analyzer を Windows サービスから起動します。
12. CPU利用率の確認と、serverout ログファイルをご確認いただき、ログが正しく出力されているかご確認をお願いいたします。
上記手順でご不明な点などございましたら、
以下のリンク先ページよりご連絡をお願いいたします。
https://www.manageengine.jp/support/
========================================
EventLog Analyzer 製品ページ
https://www.manageengine.jp/products/EventLog_Analyzer/
EventLog Analyzer ユーザマニュアル
https://www.manageengine.jp/products/EventLog_Analyzer/help.html