こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

SQL サーバのCPU使用率が高い

お世話になります。
以下の問題に直面し困っております。
よろしくご教授願います。

元々MS SQL Server 2000 にて使用していたテーブル(4千数百万行)を ほぼ同じマシンスペックの筐体にインストールした SQL Server 2008R2 に移行したところ、単純なSELECT文を実行しただけでCPU使用率が100%近くまで上昇してしてしまいます。(2000では20~30%)
インデックスが移行されていないのかと思い確認しましたが、全く同じ状態でした。
何かサーバ、OSの設定等で解決できるものでしょうか?

投稿日時 - 2014-07-12 09:15:37

QNo.8674800

困ってます

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

SQL2000 の時に似たような事例がありました。
SQL2008R2 にも同様の問題があるのかはわかりませんが、

私が経験した事例では
比較的重いクエリーを実行すると4つのCPU(2コア×2スレッド)全てで
100%の状態が数分間続き、他の処理ができない状態でした。
最終的には、SQL2000が使用する CPU を一つ減らすことで
発生しなくなりました。

マイクロソフトの推奨として
SQLサーバーを DC と同居している場合には、
CPU0は DC用に空けろとしています。
(この話は講習の時に聞いただけなので、資料としてはみたことありません)

投稿日時 - 2014-07-15 19:20:41

ANo.1

回答がつかないようなので。

状況がわからないし、ご自分でどのくらい調べられた&どんなトライをしたのかわからんので、的確なアドバイスはつかないと思いますよ。なのでタスクマネージャーの状況とか、トライした設定変更とか、2000&2008R2のH/W情報とか追記された方がいいかもしれませんね。

とりあえず今の情報では常道のtempdbの設定を変えてみるくらいしか思いつかない(汗)
http://msdn.microsoft.com/ja-jp/library/ms175527.aspx

あとお手軽(?)な常道としてはメモリ増設。SQLServer君は昔からメモリが大好物ですからね…

ご覧になっているかと思いますが、2000と2008R2で最少システム要件で結構差があるんで、そもそもH/Wが適正か?という根本論に行き着くかも。

SQLServer2000の最少システム要件(抜粋)
Intel Pentium または互換の 166 MHz 以上のプロセッサを搭載した PC

SQLServer2008R2の最少システム要件(抜粋)
32 ビット版 x86 : 1 GHz 以上
64 ビット版 x64 : 1.4 GHz 以上
IA64 : 1 GHz 以上

SQL Server 2000 システム要件
http://technet.microsoft.com/ja-jp/sqlserver/gg638891.aspx

システム要件 | SQL Server 2008 R2
http://www.microsoft.com/ja-jp/sqlserver/2008/r2/prodinfo/sysreqs.aspx

投稿日時 - 2014-07-12 11:17:49

お礼

ご回答ありがとうございます。

なるほど、HW要件にそこまで差があったのですね。
TempDb設定変更を試してみます。

投稿日時 - 2014-07-13 10:54:23

-広告-
-広告-
-広告-
-広告-