付録A.4 レコードのインスタンス数の算出方法

PFM - Agent for Microsoft SQL Serverが収集する各レコードのインスタンス数の算出方法を表A-7に示します。

osqlなどで監視対象のMicrosoft SQL Serverに接続して,SQL文を実行しインスタンス数を算出してください。また,算出方法を記載しているレコードに関しては,算出方法に従い算出してください。

実行手順
  1. osqlを起動します。
  2. 次の権限が与えられているユーザーを用いて,監視対象のMicrosoft SQL Serverに接続してください。
    ・sysadmin
  3. インスタンス数を確認したいレコードに対して,表A-7に記載されているSQL文を実行してください。
    注意
    インスタンス数に関しては,監視対象となるMicrosoft SQL Serverの動的情報となります。そのため,監視対象のMicrosoft SQL Serverに対する接続数などの要因によりインスタンス数が動的に増減します。また,Storeデータベースのディスク占有量およびシステム全体のディスク占有量の見積もりをする際には,算出されたインスタンス数の最大の値を適用してください。

    表A-7 レコードのインスタンス数の算出方法

    レコードインスタンス数またはインスタンス数算出方法
    PIインスタンス数は1。
    PI_DISELECT count(*) FROM master..sysdatabases
    PI_ESI※1インスタンス数は0。
    PI_GENI※1インスタンス数は0。
    PI_RPDBsp_replcountersのシステムストアドプロシージャを実行した結果の件数。
    PI_SERVインスタンス数は1。
    PI_SIインスタンス数は1。
    PI_TLOGDBCC SQLPERF(LOGSPACE)のDBCCステートメントを実行した結果の件数。
    PI_UCTRインスタンス数は1。
    PDインスタンス数は1。
    PD_CDsp_configureのシステムストアドプロシージャを実行した結果の件数。
    PD_DDSELECT count(*) FROM master..sysdatabases
    PD_DSSELECT count(*) FROM master..sysdatabases
    PD_EEPD_EEレコード収集間隔内にSQL Serverエラーログに対して書き込まれた次のメッセージの件数。
    "Error","error","Failed","failed","エラー","失敗"
    PD_EEレコードの収集間隔内でSQL Serverエラーログに書き込まれる最大値をインスタンス数とする。
    SQL Serverエラーログは,SQL_ERRORLOGに指定した監視対象となるSQL Serverインスタンスのエラーログファイル。
    PD_ESインスタンス数は1。
    PD_GEND※1インスタンス数は0。
    PD_IAインスタンス数は1。
    PD_JHSELECT count(*)
    FROM msdb..sysjobhistory a
    LEFT JOIN msdb..sysjobsteps b ON a.job_id = b.job_id
    PD_LDSELECT count(*) FROM master..syslockinfo
    PD_LICインスタンス数は1。
    PD_LOCKインスタンス数は1。
    PD_PCACインスタンス数は1。
    PD_PDESインスタンス数は0。
    PD_PDETSELECT count(*)
    FROM ( master..sysprocesses a
    LEFT JOIN master..syslogins b ON a.sid = b.sid )
    LEFT JOIN master..sysusers c ON a.sid = c.sid
    PD_RD次の1.および2.を実行する。
    1. USE distribution
      EXEC sp_tables MSdistribution_history, dbo
    2. USEディストリビューション
      EXEC sp_tables MSdistribution_history, dbo
    • 1.および2.を実行した結果として,両方とも「メッセージ911,レベル16」のエラーが発生した場合,インスタンス数は0。
    • 1.および2.のどちらかがエラーとならずに,その結果が0件の場合,インスタンス数は0。
    • 1.および2.のどちらかがエラーとならずに,その結果が1件の場合,インスタンス数はSELECT count(*) FROM master..sysdatabasesの実行結果。
    PD_RH※1インスタンス数は0。
    PD_RS次の1.および2.を実行する。
    1. (1)USE distribution
      EXEC sp_tables MSdistribution_history, dbo
    2. (2)USE ディストリビューション
      EXEC sp_tables MSdistribution_history, dbo
    • 1.および2.を実行した結果が,両方とも「メッセージ911,レベル16」のエラーが発生した場合,インスタンス数は0。
    • 1.および2.のどちらかがエラーとならずに,その結果が0件の場合,インスタンス数は0。
    • 1.および2.のどちらかがエラーとならずに,その結果が1件の場合,インスタンス数は1。
    PD_SQL※2インスタンス数は0。
    PD_SSインスタンス数は1。
    PD_USERSELECT count(*)
    FROM ( master..sysprocesses a
    LEFT JOIN master..syslogins b ON a.sid = b.sid )
    LEFT JOIN master..sysusers c ON a.sid = c.sid
注※1
予約レコードのため使用できません。
注※2
リアルタイムでだけ使用できるレコードです。