SQL Server 2005のページの平均余命が0(ゼロ)である理由


8

SQL Serverのページの平均寿命を知りたいと思っています。そこで、Performを使用してカウンターを確認します。値はゼロで、決して変更されません。バグがあるのではないかと思ったので、SQL Server DMVクエリを確認しました

SELECT [object_name],[counter_name],[cntr_value]
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Manager%'
AND [counter_name] = 'Page life expectancy'

また、終日ゼロを返します。

これをより興味深いものにするために、平均で99〜100の「バッファーキャッシュヒット率」カウンターを確認しました。

では、「バッファキャッシュヒット率」が100の場合、ページの平均余命はどのようにゼロになるのでしょうか。

何が欠けていますか?常にゼロの場合、バッファキャッシュに何も残っていないことを意味します。バッファキャッシュヒット率が100の場合、これは正しくないように見えますか?

前もって感謝します

回答:


4

ここで概説されている手順を実行することから始めます。

SQL Server 2005または2008インスタンスのパフォーマンスカウンターを再構築する方法

2015年8月更新:上記のリンクが壊れているように見える。代替参照:

トラブルシューティング:SQL Server(2005、2008)パフォーマンスカウンターコレクションの問題(CSS)

リンクされたリソースからの重要なステップ

管理者特権のコマンドプロンプトを使用して、次の手順を実行します。

  1. BINN修正するSQL Serverインスタンスのディレクトリへのパスを変更します。
    (例:C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Binn
  2. 実行unlodctr <<REGISTERED SERVER NAME>>
    例:unlodctr MSSQL$SQL2008またはSQLAgent$SQL2008...
  3. 実行lodctr /T:<<perf-sql* matching the counters you desire to load>>
    例:perf-MSSQL$SQL2008sqlctr.iniまたはperf-SQLAgent$SQL2008sqlagtctr.iniSQLAgentの場合。これ/Tは、SQL Serverパフォーマンスカウンタープロバイダーを信頼できるプロバイダーとして読み込むことが重要です
  4. サイクルリモートレジストリサービス:
    net stop "Remote Registry"その後、net start "Remote Registry"
  5. winmgmt /resyncperfctr "<<PID>>"
    PIDがのプロセスIDである場所を使用してWMI同期を強制しWinPriv.exeます(これはタスクマネージャーから取得できます)

さらに、このリソースから、次のものも必要になる場合があります。

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
    レジストリキーに正しいセキュリティアクセス許可が付与されていることを確認します。

    1. 作成者所有者アカウントにフルコントロールアクセス許可を付与します。
    2. Administratorsアカウントにフルコントロールのアクセス許可を付与します。
    3. そのボックス/ノードのSQL管理者に読み取り権限を付与します。
    4. システムアカウントにフルコントロールアクセス許可を付与する
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.