質問

Java / .Netアプリをプロファイルして、パフォーマンスのボトルネックやメモリの問題を見つける方法が大好きです。たとえば、を見てパフォーマンスのボトルネックを見つけるのは非常に簡単です。メソッドごとの実行時間と呼び出し回数を含む呼び出しツリー。 SQL Serverには、ビューに依存する他のストアドプロシージャを呼び出すストアドプロシージャがあります。これは、他のメソッドを呼び出すJava / .Netメソッドに似ています。したがって、同じ種類のプロファイラがここで非常に役立つようです。しかし、私は遠くに見えましたが、見つけることができませんでした。 SQL Serverまたは他のDBMS用のツールを知っている人はいますか?

更新:SQL Server Profilerに関するご回答ありがとうございますが、このツールは非常に限られています。 スクリーンショットをご覧ください。

>
役に立ちましたか?

解決

SQL Nexusツールをご覧ください。これには、ボトルネックの特定に関するいくつかの優れたレポートがあります。 SQL Nexusは、SQL Serverのパフォーマンスの問題の根本原因を特定するのに役立つツールです。 SQLDiagとPSSDiagによって収集されたパフォーマンスデータを読み込み、分析します。データの手動分析に費やす時間を劇的に削減できます。

Inside SQL 2005の書籍(T-SQLクエリなど)の1つで、作成者がSQLプロファイラーの出力をテーブルまたはExcelファイルにダンプし、ピボットを適用して同様の出力を取得するクールな手法がありましたスクリーンショットとしてフォーマットします。

この種の分析を提供する組み込みSQLツールは見たことがありません。 別の便利な投稿

他のヒント

SQL Server Profilerに加えて、@ Galwegianからのコメントで言及されているように、クエリを実行するときに実行計画もチェックアウトします。

http://www.sql-server-performance.com/tips /query_execution_plan_analysis_p1.aspx
http://en.wikipedia.org/wiki/Query_plan

SQL Serverプロファイラーに関するもう1つのスレッド:

SQL Serverのパフォーマンスの問題の特定

あなたが話していることは理解していますが、通常、データベースの最適化はより詳細なレベルで行われます。データベースアクティビティがクライアントから駆動される場合は、既存のクライアントプロファイラーを使用して各ステップの合計時間を取得し、(データベースにあるかどうかに関係なく)ぶら下がっている果物に対処できる必要があります。

特定のデータベースステップを詳細にプロファイリングする必要がある場合は、プロファイラーとトレースを使用できます。

通常、データベースアクセスには個別に対処される特定の粒度があり、データベースアクティビティはあらゆる種類のユーザーアクセスに対して線形ではありませんが、プログラムプロファイラーは通常、コードの線形パスをプロファイリングします。

前述のように、SQL Server Profilerは、プログラムからSQLなどに渡されるパラメーターを確認するのに最適です。必要な場合でも、実行ツリーは表示されません。そのために考えられるのは、Show Planを使用して、実行時に正確に実行される内容を確認することだけです。例えば。ビューを呼び出すspを呼び出している場合、プロファイラーはspが実行されたことと渡されたパラメーターを表示するだけです。 また、Windowsパフォーマンスモニターには、SQL Server固有の広範な実行時パフォーマンスメトリックがあります。サーバーで実行するか、リモートで接続できます。

パフォーマンスのボトルネックを見つけるには、データベースエンジンチューニングアドバイザー(SQL Server Management Studioの[ツール]メニューにあります。クエリを最適化するための提案と、自動的に最適化するための提案を提供できます(適切なインデックスの作成など) 。)。

S qlプロファイラーを使用できます-プロファイリングをカバーします側面ですが、私はそれをロギングツールと考える傾向があります。 パフォーマンスを診断するには、おそらくクエリプランを確認するだけです。 。

SQLサーバープロファイラーはありますが、名前にかかわらず、質問の音により、望んでいることはできません。データベースで行われているすべての呼び出しの詳細ビューが表示されます。一度に1つのsprocだけでなく、アプリ全体のトラブルシューティングに適しています

クエリアナライザーでクエリ/ spocsの実行プランを表示する必要があるように思えます。これにより、探しているデータに似たものが得られます。

いくつかの回答で述べたように、SQLプロファイラーはあなたが求めているものを表示します。必ず行う必要があるのは、ストアドプロシージャグループにあるイベントSP:StmtCompletedをオンにし、クエリプランが必要な場合はパフォーマンスグループにあるShowplan XML Statistics Profileをオンにすることです。 。最後のXMLプランでは、グラフィカルな説明が提供され、プランの各ステップで処理された実際の行が表示されます。

プロファイラーがアプリの速度を低下させている場合は、できる限りフィルタリングして、サーバー側のトレースに進むことを検討してください。

HTH アンディ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top