web-dev-qa-db-ja.com

アクティビティモニターはサーバーに対してクエリを実行できません

SSMSアクティビティモニターを機能させるための修正はありますか?

問題:

SQL Serverアクティビティモニターがエラーダイアログで失敗する:

TITLE:Microsoft SQL Server Management Studio
アクティビティモニターはサーバー[SERVER]に対してクエリを実行できません。このインスタンスのアクティビティモニターは一時停止状態になります。アクティビティモニターを再開するには、概要ペインのコンテキストメニューを使用します。

追加情報:
サーバー[SERVER]でSQL ServerプロセスID [PID]が見つかりません(Microsoft.SqlServer.Management.ResourceMonitoring)

私はSQL Server 2008 R2 x64 Developer Editionでこの問題を抱えていますが、SQL Server 2008を使用するすべての64ビットシステムで、まだ特定されていない条件下で見つかると思います。

Microsoft Connectにはこれに関する バグレポート がありますが、まだ解決されていません。

13
mika

SQLServerパフォーマンスカウンターがパフォーマンスモニターに存在するかどうかを確認します。そうでない場合、 すべてのパフォーマンスカウンターを手動で再構築 実行中lodctr /R管理権限付きのコマンド:

cd \windows\system32
lodctr /R
20
mika

OK、私は解決策を見つけたと思う。

問題は、相互にクエリする必要がある32ビットと64ビットのアプリの組み合わせにあるようです。

サービスコントロールパネルでサービスパフォーマンスカウンターDLLホストを有効にすると、アクティビティモニターが機能するようになります。

4
Renaud Bompuis

最も単純なケースでは、SSMSを再起動するだけです。アクティビティモニターの実行中にネットワーク接続が失われた後、2005サーバーに対して実行されているSSMS 2008 R2でこの問題が発生しました。 SSMSの再起動を試みる前に、いくつかのトリックを試しましたが、それが役に立ちました。

2
Carlos

SQLがWindows 2008 R2サーバーまたはクラスターで実行されている場合は、パフォーマンスモニターアプリケーションに移動し、データコレクションセットを展開して、システムパフォーマンスを選択します。メニューの下の線にある矢印が緑色の場合は、それをクリックするだけです。これにより、カウンターが再起動されます。システム診断コレクションセットでも同じように実行できます。

次に、SSMSアクティビティモニターを開くSQLインスタンスへの新しい接続を更新または開くだけで、問題は解決されているはずです。

私は今日これに偶然遭遇しました。もちろん、概要ペインのコンテキストメニューを使用してアクティビティモニターを再開するというエラーメッセージは、私には何の助けにもなりませんでした。

これが誰かを助けることを願っています。

1
user82106

この問題に関する私の経験を投稿したいと思いました。

症状-SQL Server 2008 R2は、Dellマシンで、突然、大幅なパフォーマンスの低下に見舞われました。クエリを実行すると、ユーザーアプリケーションが非常に遅くなります。アクティビティモニターが起動しますが、プロセスリストを開こうとすると、上記のプロセスタイムアウトエラーが発生します。

データベースの復元されたバックアップは、メモリが半分の2台目のサーバーで正常に実行されました。これらの同じバックアップを元のサーバーに復元しても問題は解決しませんでした。

私はすべてのデータベースでdbccを実行し、インデックスを再構築しました。 Windowsページファイルを強制的に再作成します。 SQLサーバーの再起動を試みました。サーバーを再起動してみました。これらはどれも機能しませんでした。上記のようにパフォーマンスカウンターをリセットします。これにより、サーバーのCPU使用率は向上しましたが、問題は解決しませんでした。

私たちのネットワーク管理者は、ハードウェアの問題を除外したいと考えていました。彼はRAIDコントローラーのデバイスドライバーを更新し、サーバーの電源を切りました。彼はデルの電源シーケンスを使用してメモリをパージしましたが、これには電源からの切断が含まれていました。再起動後、サーバーは正常に動作しました。

電源を入れ直すことで問題が解決し、根本的な問題はハードウェアメモリにあると考えられます。

1
John

同じエラーメッセージが表示され、技術詳細が表示されました。これにより、Microsoft.SqlServer.Management.ResourceMonitoring.dllが表示されました。エラーをスローしていたメソッドを逆コンパイルしましたが、コードを少し追跡したところ、「Process」グループのPerformanceCounterがインスタンス化されようとしている領域が見つかりました。私はPerfmonをチェックインしましたが、そのグループはそこにいませんでした。他のカウンターは機能していましたが、そのカウンターはありませんでした。そのグループはどういうわけか無効になったようです。

修正方法:regeditを使用してHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performanceを検索し、そこにDisable Performance Countersというキーがあります。これを削除するか、0に設定します。キーを変更した後、再起動が必要になる場合があります。

0
EightVans

まだコメントできないので、新しい答えを...

EightVansの提案を最初に試しました

修正方法:regeditを使用してHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performanceを検索し、そこにDisable Performance Countersというキーがあります。これを削除するか、0に設定します。キーを変更した後、再起動が必要になる場合があります。

そして、私はまだ問題を経験しました。次に、ルノーの提案を試しました:

サービスコントロールパネルでサービスパフォーマンスカウンターDLL Hostを有効にすると、アクティビティモニターが機能するようになります。

そして、私はまだ問題を経験しました。次に、ミカの提案を試しました:

SQLServerパフォーマンスカウンターがパフォーマンスモニターに存在するかどうかを確認します。そうでない場合は、管理者権限でlodctr/Rコマンドを実行するすべてのパフォーマンスカウンターを手動で再構築します。

これで、アクティビティモニターが機能します。

0
Ed Sykes

私はただします

まずエイトバンズの提案

修正方法:regeditを使用してHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performanceを検索し、そこにDisable Performance Countersというキーがあります。これを削除するか、0に設定します。キーを変更した後、再起動が必要になる場合があります。

そしてミカの提案:

SQLServerパフォーマンスカウンターがパフォーマンスモニターに存在するかどうかを確認します。そうでない場合は、管理者権限でlodctr/Rコマンドを実行するすべてのパフォーマンスカウンターを手動で再構築します。

そして、私のシステムでアクティビティモニターが実行されています!

0
Raul