■ Windwosのパフォーマンスモニタで確認する項目

・SQLSERVERで使用しているドライブの下記の項目
\PhysicalDisk()\Avg. Disk Queue Length
\PhysicalDisk()\Disk Reads/sec
\PhysicalDisk()\Disk Writes/sec

・CPU
\Processor(_Total)\% Processor Time

・SQLのキャッシュヒット率
\SQLServer:Buffer Manager\Buffer cache hit ratio

SQL Statistics
・Batch Requests/sec
  →秒間のコマンド数(問合せのクエリ以外のコマンドもカウントされるので、
   実際のクエリ発行数ではありませんが、利用状況を把握できます)

Buffer Manager
 ・Page life expectancy
  →DB上にデータを保持している時間 300秒を下回っているとメモリが足りていない可能性

Locks
 ・Lock Requests/sec
 ・Lock Waits/sec
  →ロック待ち

Access Methods
 ・Index Searches/sec
 ・Probe Scans/sec
 ・Range Scans/sec
 ・Full Scans/sec
  →Full Scan(テーブルスキャン)が多いと適切なインデックスが無い可能性

■ディスクのパフォーマンス測定ツールとして
 CrystalDiskMark
 可能であれば、ファイルサイズ 1000MBで
 どれくらいのパフォーマンスが出るストレージか確認。

その他参考サイト
http://msdn.microsoft.com/ja-jp/magazine/cc135978.aspx

・不足インデックスのコスト
・I/O に関してコストのかかるクエリ
・CPU に関してコストのかかるクエリ

その他、DBのオブジェクト確認用スクリプト

select
SU.NAME,
(SELECT
 CASE SP.action
          WHEN '26' THEN 'REFERENCES'
          WHEN '178' THEN 'CREATE FUNCTION'
          WHEN '193' THEN 'SELECT'
          WHEN '195' THEN 'INSERT'
          WHEN '196' THEN 'DELETE'
          WHEN '197' THEN 'UPDATE'
          WHEN '198' THEN 'CREATE TABLE'
          WHEN '203' THEN 'CREATE DATABASE'
          WHEN '207' THEN 'CREATE VIEW'
          WHEN '222' THEN 'CREATE PROCEDURE'
          WHEN '224' THEN 'EXECUTE'
          WHEN '228' THEN 'BACKUP DATABASE'
          WHEN '233' THEN 'CREATE DEFAULT'
          WHEN '235' THEN 'BACKUP LOG'
          WHEN '236' THEN 'CREATE RULE'
          ELSE '判別不能'
   END )AS '権限',
SO.NAME,
(select
CASE SO.XTYPE
  WHEN 'U' THEN 'テーブル'
  WHEN 'P' THEN 'ストアドプロシジャー'
  ELSE 'それ以外'
  END ) AS '種類',
SO.CRDATE
from sysusers SU,sysprotects SP, sysobjects SO
where SU.UID = SP.UID AND SO.ID = SP.ID AND SO.XTYPE IN('U','P')
order by SU.NAME,SO.CRDATE desc
--order by SO.CRDATE desc,SU.NAME

Comments are closed.

Post Navigation