0

私はSQLServerを使用してリソースを大量に消費するクエリ/データベース/ユーザーを特定するのに役立つクエリを作成しようとしてきましたが、まだ完全には理解していません。'mysqladminprocesslist'がMySQLに対して行うことを行うクエリを作成したいと思います。

この関連する質問を参照しましたが、本当に必要なものが得られていません。私はを使用してsp_whoおりsp_who2、次のようなクエリを実行します。

select master.dbo.sysprocesses.loginame, 
count(master.dbo.sysprocesses.loginame)
from master.dbo.sysprocesses
group by master.dbo.sysprocesses.loginame

問題は常に、これらのツールの1つでは必要なものがすべて提供されないことです。私の目標は、次の形式のクエリを作成することです。

LOGIN, DATABASE, QUERY, CPU, MEM, etc.

誰かがこれを行う方法を知っているなら、私は助けていただければ幸いです。誰かがSQLServerDBAのチートシートを持っているなら、それも素晴らしいでしょう。

4

2 に答える 2

2

sproc呼び出しで実行する必要がありますか?SQL Server Management Studio(リンクはExpress Edition用ですが、SQL Serverのフルインストールには既に含まれています)には、必要なものを正確に一覧表示する「ActivityMonitor」機能があります。

それ以外、

EXECUTE sp_who2

ログイン、DBName、コマンド、CPUTime、DiskIO、すべてがそこにあります...

SPIDが実行している正確なコマンドが必要な場合は、

DBCC INPUTBUFFER(spid)

コマンド(sp_who2DELETE、SELECTなどかどうかを通知するだけです)

于 2010-07-09T03:29:14.750 に答える
1

バストアウトしたsp_who2場合は、関心のあるフィールドを抽出できます。

select    
  spid
 ,status 
 ,hostname
 ,program_name
 ,cmd
 ,cpu
 ,physical_io
 ,blocked
 ,dbid
 ,convert(sysname, rtrim(loginame))
        as loginname

      from sys.sysprocesses with (nolock)
      order by cpu desc
于 2010-07-09T02:05:01.437 に答える