SQLサーバーのパフォーマンスの問題を定期的に監視およびトラブルシューティングするための最良のツールとプロセスは何ですか?
私たちが使用しているのはSQLH2(SQL Server Health and History)です。これはMicrosoftのアドオンパックとして作成されており、SQLServer用の優れた「getyougoing」レポートのセットがあり、無料です。
定期的な健康診断のみを探している場合は、これらのレポートをスケジュールに従って設定して、毎週メールで送信することができます。
レポートまたはユーザーレポートのいずれかから問題に気づき始めた場合は、PerfmonおよびSQL Traceを調べて、手がかりとより具体的な診断を探し始めます。
私は自分の会社の「DBA」になることに夢中になりました。私はこれと同じことを任されました。 Brent Ozar それについてのブログに出くわしました。 Perfmonは、パフォーマンステストを開始するための優れた方法です。より詳細なアプローチは、SQL ServerProfilerを使用することです。 redgateから 無料の電子書籍 をダウンロードしました。
Sql Server 2005での私のお気に入りの1つは、オブジェクト実行統計です。私のデータアクセスはすべてストアドプロシージャを介して行われるため、このレポートには、現在キャッシュされているプランを持つすべてのプロシージャの統計が表示されます。
データベースを右クリック->レポート->標準レポート->オブジェクト実行統計
実行速度が遅い、または頻繁すぎるものは、親指の痛みのように突き出ます。
SQLServerプロファイラーは優れています。
実行速度の遅いクエリを取得するためにプロファイラーを使用することを含むSimpleTalkの記事を書きました
私がよく行うのは、そのようなトレースを毎週実行し、履歴結果を監視データベース(本番サーバー以外の場所)のテーブルに保持することです。そうすれば、ある週から次の週への傾向を簡単に確認できます。
私たちはzabbixと呼ばれるオープンソースツールを使用してきました。 http://www.zabbix.com --mysql/phpで実行されます。
Perfmonの収集とグラフ化を行います。また、監視/アラート。あなたはどんなperfmonカウンターでも引っ張ることができます。
一部の統計分析は少し弱いため、レポートサービスのカスタムレポート用に1時間ごとの統計をSQLサーバーにダンプして、次のような質問に答えます-使用量が線形で継続する場合、サーバーは平均65%のCPUでいつ実行されますかファッション?
私はSQLサーバーの負荷を追跡し、不足しているインデックスなどに関する推奨事項を提供する可能性のある優れた製品、VeritasI3を使用しています。
I Veritas I3では、すべてのSQLステートメントが使用しているCPU、IO、メモリ、実行プランなどを確認できます。
しかし、私はあなたを失望させなければなりません、製品は無料ではありません。 :(