SQL Server の CPU 負荷試験のためのクエリと、負荷の確認方法について紹介します。
こちらのサイトを参考にさせて頂きました。
CPU 負荷をかけるクエリと実行方法
SQL Management Studio で「新しいクエリ」をクリックします。
以下のクエリを実行します。
DECLARE @Str varchar(100) WHILE (1=1) BEGIN SET @Str = @@CPU_BUSY END
実行例は以下のとおりです。
リソースモニターで "sqlservr.ext"プロセスの CPU 使用率上昇が確認できます。
CPU 負荷をかけるクエリの確認方法
パフォーマンスモニターを起動します。
パフォーマンスモニターを選択して「追加ボタン」をクリックします。
"Thread"カウンターの "%Processor Time"と "ID Thread"を選択し、<すべてのインスタンス>を選択して「検索」をクリックします。
"sqlservr/数字"を全て選択して「追加」をクリックし「OK」をクリックします。
グラフの種類を「レポート」に変更します。
"%Processor Time"が上昇している "ID Thread"を検索します。
本例では、ID Thread 3948 の負荷が上昇しています。
SQL Management Studio で「新しいクエリ」をクリックし、以下のクエリを実行して 3948 の詳細を確認します。
SELECT spid, kpid, dbid, cpu, memusage , status, open_tran FROM sys.sysprocesses WHERE kpid = 3948
本例では、dpid*1は "1"、sqid*2は "53"となっています
以下のクエリを実行して、どの DB に負荷がかかっているかを確認します。
SELECT database_id, name FROM sys.databases WHERE database_id = 1
本例では、DB は "master"となっています。
以下のクエリを実行して、DB に負荷をかけているクエリを確認します。
dbcc inputbuffer(53)
テスト負荷用に作成したクエリによることが確認できます。
以上