トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション



Webテクノロジー ボードリーダー:小川 貢

毎月第2、第4木曜日はボードリーダーからのレポートを掲載いたします。
 
   

2004年3月25日
『どっとねっとと雑多な日々 24』

今回は SQL Server 2005 ( Yukon から 2005 という正式名がアナウンスされました。)に搭載されるパフォーマンスデータを見れるシステムテーブル(ビュー)とその活用例を紹介します。

SQL Server マガジンの座談会でも話をしましたが、SQL Server 2005 にはパフォーマンス情報が見れるシステムテーブル(ビュー)が追加されました。このテーブル(ビュー)にはパフォーマンスモニタに登録されている情報が見れます。

そのテーブル名は sysperfinfo という master 上にあるビューです。
テーブルの構成は

object_name nchar(128)
counter_name nchar(128)
instance_name nchar(128)
cntr_value int
cntr_type int

です。

このうち object_name と counter_name に登録されるデータの一覧は私のBLOGに書きましたので参照してください。

http://blogs.sqlpassj.org/mitsugi/archive/2004/03/24/1389.aspx

この情報を定期的にテーブルに格納して、それを表示(SQL Server Reporting Sercices など)させれば、レポート作業がかなり楽になると思います。

定期的にテーブルにパフォーマンスデータを格納させるためのサンプルスクリプトを書きましたので、参考にしてください。
※このサンプルでは spInsertPerformanceData ストアドプロシージャを定期 的に実行するように Job 登録すればよいかと思います。

ただし、sysperfinfo はかなりコストがかかるので、短い間隔で実行させないようにしましょう。

CREATE DATABASE PerformanceDB
GO
USE PerformanceDB
GO
CREATE TABLE PerformanceTable
(
[PID] INT IDENTITY(1,1) PRIMARY KEY,
[object_name] nchar(128),
[counter_name] nchar(128),
[instance_name] nchar(128),
[cntr_value] int,
[cntr_type] int,
[PerformanceDate] DATETIME,
[RowNumber] TIMESTAMP
)
GO

CREATE PROCEDURE spInsertPerformanceData
AS
SET NOCOUNT ON
DECLARE @dDATETIME DATETIME
SET @dDATETIME = GETDATE()
BEGIN TRANSACTION
BEGIN
INSERT INTO PerformanceTable
(
[object_name],
[counter_name],
[instance_name],
[cntr_value],
[cntr_type],
[PerformanceDate]
)
SELECT
t.[object_name],
t.[counter_name],
t.[instance_name],
t.[cntr_value],
t.[cntr_type],
@dDATETIME PerformanceDate
FROM
master..sysperfinfo t
IF @@ERROR <> 0
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
END
RETURN
GO


 

ボードリーダーレポート トップページへ

 

 
PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.