SQL Serverパフォーマンスベースラインモニタリングの作成


8

概要と比較可能なデータを取得するための私の現在のタスクは、さまざまな生産的なSQL Serverインスタンスに関するいくつかの数値を取得するためのパフォーマンスベースラインを作成することです。

私の考えは:

  • 複数のDMVを使用したい
  • プロファイラートレース(実行計画を含む)を含めたい
  • perfmonデータを含めたい

したがって、私が達成しようとしているのは、開始可能および停止可能(スケジュール可能でもあります)の一般的なパフォーマンスモニタリングです。

  1. 進行中のパフォーマンス最適化タスクの成功を識別するために必要なすべての情報

  2. 長期的な進捗状況を視覚化するのに役立つ、いくつかの集約された単純な図..特に 管理用;-)

  3. 個々のキューの変更とインデックス最適化タスクによる改善を比較するためのプロファイラートレース内の再実行可能な実行プラン

パフォーマンスベースラインの作成について説明している情報がいくつか見つかりました。それらのほとんどは、非常に複雑であるか、目的のパフォーマンスインジケーターの1つ(主にパフォーマンスデータ)にのみ焦点を当てています。

最も一致するサンプル/説明は次のとおりです。SQLServerのパフォーマンスベースラインの作成

質問は:

この種のパフォーマンスモニターをすばやく実行可能な方法で作成した経験がある人はいますか?


3
ブレントオザーSp_Blitzから入手できる少しの情報参照リンクここここ
シャンキー

3
簡単な答えは次のとおりです。いいえ。ベースラインパフォーマンスに必要なものを概説するには、時間をかける必要があります。その評価に基づいて、クエリをまとめて情報を収集し、情報を格納するdbオブジェクトを作成する必要があります。@Shankyの提案に加えて、sp_whoisactiveを使用して有用な情報を収集することもできます
tommyfly

6
また、ベースライン化を行うサードパーティのツールを検討することもできます(その上、多くのことが行われます)。あなたが提案しているのは、他の人がすでに行った多くの作業を再発明することです。いいえ、それらは無料ではありませんが、あなたの時間でもありません(そして経営陣はそれをよく知っています)。
アーロンバートランド

こんにちはアーロン、これを行うサードパーティのツールを提供してください
TheGameiswar

3
SQLSentryに移動します。私は以前の仕事でそれを使用し、その優れたツール+ @AaronBertrandのようなコミュニティの優れたサポートと人々を持っています:-)
Kin Shah

回答:


8

1年以上後、私の経験とこの質問/トピックの最終結果をみんなに知らせたいと思います。

自分で物作りを始めました。最初に、Tim Fordの記事「SQL ServerパフォーマンスカウンターデータとCMVの履歴の収集と保存」に従って、何かを取得し、収集したいあらゆるデータでこれを拡張しました。したがって、1日1回、DMVから特定の情報を収集し、その結果をデータベース内のローカルサーバーに保存するストアドプロシージャを各SQL Serverでいくつか実行します。これには、インデックスの使用、不足しているインデックス、自動拡張、サーバー設定、アプリケーションデータベース設定、断片化、ジョブ実行、トランザクションログ情報、ファイル情報、待機統計などの特定のログエントリが含まれます。

さらに、Brent Ozarのsp_blitzの定期的な実行結果をこのリポジトリに追加して、動作、改善、およびレポートのための追加の貴重な兆候を収集しました。

その後、すべてのデータはそこから専用の監視SQLサーバーに収集されます。この方法で、すべてのサーバーに関するパフォーマンス関連情報のバンドルストアを作成し、これを調査とレポートのベースとして使用します。

次に、Excelシートを作成し、レポートサービスを使用してレポートを作成して分析および解釈しました。いくつかのサンプル:

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

また、Fedor Georgievによる記事「SQL Serverテーブルへのパフォーマンスデータの収集」に触発されたTYPEPERFを使用して、いくつかのパフォーマンスカウンター監視を構成しました

私のSQL監視インスタンスから、typeperfをトリガーして、構成可能なサンプル間隔で構成可能な数のサンプルを実行および収集し、結果を中央監視データベースに保存します。

これにより、長期的なパフォーマンス値を観察できます。サンプル:

ここに画像の説明を入力してください

これを使用してベースライン情報を収集した後、失敗したジョブ、デバッグ手順の確認に費やす必要のあるメンテナンス作業はかなり多いことがわかりました(たとえば、DBがオフラインになった場合、スクリプトは失敗しました)、サーバーが交換された後の設定の維持...

また、すべてのレコードを収集するデータベースは、保守とパフォーマンスのチューニングが必要であるため、データを有用に保つために追加の作業が必要になります...

最後に完全に欠けているのは、ライブで起こっていることを見る能力です。ベストケースでは、データコレクターの実行後、翌日に何が起こっていたのかを知ることができます。また、すべての詳細が欠落しています。デッドロックグラフにアクセスできません。疑わしい時間枠で実行されていたクエリのクエリプランを確認できません。

そのすべてが、私が自分で作成することができない専門的な解決策にお金を使うために経営陣に請求するつもりでした。

最後の選択は、他と比較して説得力があり、私たちの問題点を特定するために必要な多くの情報を提供するので、SentryOneを購入することでした。

最後の結論として、小規模で基本的に健全な環境が整っていない限り、同様の質問に対する答えを探している人は自分で作成しないようにアドバイスします。いくつかのシステムと多くの問題がある場合は、すぐに専門的な解決策を取り、多くの時間とお金を費やして有用性の低いハッシングを作成するのではなく、問題に対してベンダーの支援を利用することをお勧めします。しかし、このルートはまだ非常に興味深く、見逃したくない多くのことを学びました。

この質問スレッドに遭遇したら、これが役に立つと思います。

2017年4月20日編集: ブレントオザーは最近、SQLタイガーチームが採用した類似のアプローチの一種である次の記事をFacebookに投稿しました:https ://blogs.msdn.microsoft.com/sql_server_team/sql-server-performance-baselining -reports-unleashed-for-enterprise-monitoring /


2
あなたが同じ結論に達したことを嬉しく思います、そしてあなたはその通りです、あなたの時間は、車輪を再発明するよりも、実際の問題を修正することにはるかに費やされます。あなたのホイールは特に光沢があります:D
ConstantineK

6

ここにあなたがここで見つけることができるいくつかの実用的な例でいくつかの良い記事があります:

ベースラインを使用してSQL Serverのパフォーマンスの問題を検出する方法–パート1 –はじめに

ベースラインを使用してSQL Serverのパフォーマンスの問題を検出する方法–パート2 –メトリックの収集とレポート

ベースラインを使用してSQL Serverのパフォーマンスの問題を検出する方法–パート3

パート1ではベースラインとは何かについての基本的な知識を提供しますが、パート2では「貧乏人」の方法を使用して自分でそれを行う方法についての情報を見つけることができます(無料で学習に適しています)。

パート3では、ベースラインを確立する方法と、ApexSQLモニターを介していくつかの問題のトラブルシューティングでベースラインを使用する方法の例をいくつか示します


4

私はかなり新しく開発されたDBAとして、無料ツールの全範囲を実行し、有料スペース(DPA、SQL Sentry、およびFoglight)でいくつかの実験を行いましたが、それは実際にツールの目的に依存します。

私の経験では、最も重要なことは、パフォーマンスのベースラインを伝えることだけではなく(誰かが怒鳴る人がいない限り、管理はあまり気にしませんでした)、優先順位を明確にし、パフォーマンスを追跡できる、使いやすい形式で何かを生み出しました生産における問題。

無料のルートをたどることでスキルを確実に高めることができ、SQL Serverのツールは素晴らしいです。

これらといくつかの追加のデータベース/テーブルとジョブと時間を使用して、基本的な監視システムを構築できます(ただし、美しくはありません)。これらはDBA向けのツールです。Ozarのsp_blitzアプリはかなりクールですが、BIに長けていなければ、そこからビジネスフレンドリーな有用なものを作成するための時間を見つけるのに苦労します。

約1年を費やして無料のことを行い、多くの問題を解決した後(多くの賛同を得ることはありませんでした)、大きな問題の後、パフォーマンス監視ソフトウェアが優先事項であることを明確にでき、私たちはそれを購入しました地獄や高水に来る。

前述のクライアントをデモした後、管理者が結果を簡単に消費できるため、DPAを選択しましたが、SQL Sentry Plan Explorer Proのクライアントライセンスは確かにあり(金額に見合う価値は1000%)、サーバーバージョンを使用するのが本当に好きでしたが、取得できませんでした。同じ方法。

ある時点でSQLNexusを動作させることも試みましたが、私が興味を持っていたよりも多く動作するようになりました。それはあなたのニーズに合うかもしれません。


1

さまざまな生産的なSQLインスタンスに関するいくつかの数値を取得するためのパフォーマンスベースラインをすばやく作成するには、Solarwinds Database Performance Analyserなどのサードパーティツールの無料トライアルを使用します。



0

私は上記のポスターのいくつかに同様のルートをたどっていましたが、Microsoftが作成したものに偶然出会いました。

上記で簡単に説明しましたが、明示的なリンクはありませんでした。Microsoft Tigerチームは、「Tiger Toolbix」を開発しました。これは、https//github.com/Microsoft/tigertoolboxからダウンロードできます。

YouTubeのビデオでタイガーツールボックスについて説明していますhttps : //www.youtube.com/watch?v=bx_NGNEz94k

https://github.com/sqlcollaborative/dbareportsもあります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.