Lifecycle Services (LCS) 内のツールを使用した、パフォーマンスのトラブルシューティング

この記事では、Microsoft Dynamics Lifecycle Services (LCS) で使用可能なツールを使用してパフォーマンスの問題をトラブルシューティングおよび緩和する方法について説明します。

概要

顧客およびパートナーからよくあるフィードバックは、LCS のツールを使用してパフォーマンスの問題を正常に診断することができないというものでした。 要求時にパフォーマンス測定基準を収集する信頼性の高い方法を作成することで、このフィードバックに対処しました。 これにより、顧客やパートナーは、サンドボックスまたは運用環境での問題を軽減するために使用できる事前に定義された一連のアクションを実行できます。 この機能は、直接 SQL Server を照会するため、ほぼリアルタイムでクエリ ストア指標が取得されます。 アクションが実行されたときにアクションを実行したユーザーを容易に判断できるように、実行されるアクションに監査証跡も追加しました。

詳細情報

LCS のすべての SQL パフォーマンス ツールは、特定の環境の 環境の監視 ページにある SQL インサイト タブから使用できます。 次のタブがあります。

  • ライブ ビュー – 実行中のステートメントおよびブロックしているステートメントを示します。 パフォーマンスの問題を示す現在の SQL Now ページは、ライブ ビューに置き換えられます。

  • クエリ – 必要に応じてメトリックを取得するために使用される定義済みのクエリの一覧を表示します。 クエリの例には、現在のブロック ツリー、有効な計画ガイドのリスト、および最も高価なクエリの一覧が含まれています。

    重要

    クエリ結果が即座に返されることを保証するために、ほとんどのクエリは同期的に実行されます。 ただし、パフォーマンスに問題が発生している場合は、同期クエリの実行によってタイム アウト エラーが発生する可能性があります。 この問題に対処するために、新しい 高速クエリの使用 オプションが追加されました。 既定で、ほとんどのクエリでこのオプションが有効になっています。 クエリの実行後にタイム アウト エラーが発生する場合は、高速クエリの使用 オプションをオフにして再度クエリの実行を試みます。 クエリは非同期に実行されます。

  • アクション – サンド ボックスと運用環境での問題を緩和するために実行する必要がある定義済みアクションの一覧を表示します。 アクションの例として、ブロック ステートメントの終了を含みます。 アクションを実行するといつでも、環境の環境履歴に実行されるアクションの記録が表示されます。 履歴レコードは、クエリの実行時ではなく、アクションにのみ作成されます。

  • クエリ タブと アクション タブ – クエリ および アクション タブに表示されるクエリの詳細については、クックブックの照会 を参照してください。

この機能を使う方法

  1. LCS でプロジェクトに移動し、環境の詳細ページを開きます。 監視 セクションで 環境監視 リンクを選択します。。 SQL インサイト タブを選択してこの機能にアクセスします。
  2. 各タブ (ライブ ビュークエリアクション) に移動し、詳細を表示またはクエリできます。
  3. クエリの実行による結果を検索したり、Excel にエクスポートしたりするオプションがあります。
  4. パフォーマンスの問題の原因を絞り込んだら、事前に定義されたアクションを使用して問題を軽減できます。
  5. アクションを実行すると、環境履歴 ページにエントリが作成されます。アクションの詳細、渡されたパラメーター、タイムスタンプ、アクションをトリガーしたユーザーが表示されます。

サンプル フロー

シナリオ: ユーザーは、システムを使用する場合にパフォーマンスの低下を報告します。 1 つの問題はブロック ステートメントの可能性があります。 正常なシステムでは単独でブロックするのが通常であり、過剰になったり、営業活動に悪影響を及ぼし始めたときのみ問題となります。

  1. ライブ ビュー タブに移動し、ブロック ステートメントがないか確認します。 ブロック ステートメントがある場合、ブロック クエリ ID をコピーします。
  2. クエリ タブを開き、現在のブロック ツリー クエリを選択します。 SQL 操作をブロックしているルート ブロッカーが返されます。
  3. 問題を解決するには、実行させて自然にクリアさせるか、リード ブロッカーのプロセスを終了して作業をロールバックすることができます。 一般に、自然にクリアしないとは思われる場合 (不適切なクエリ プランの場合など) や、重要なプロセスを実行できないためにすぐに完了する必要があるような状況でのみリード ブロッカーを終了する必要があります。
  4. 現在実行されているステートメントを終了しても問題がないことを確認します。
  5. アクション タブを開き、SQL プロセスの終了 アクションを選択して、ルート ブロッカー クエリ ID を渡します。 これは、ブロック ステートメントを終了するために SQL データベースに対してクエリを実行します。
  6. クエリ タブに移動し、現在ブロックしているクエリ を実行して、ブロック ステートメントが終了したかどうかを確認します。
  7. 環境履歴 ページで、どのプロセスが終了したかの詳細を確認することもできます。