Azure VM での SQL Server の SQL ベスト プラクティス評価

適用対象:Azure VM 上の SQL Server

Azure portal の SQL ベスト プラクティス 評価機能は、可能のパフォーマンス問題を特定し、SQL Assessment API によって提供される豊富なルールセットを使用して、Azure Virtual Machines (VM) 上の SQL Server がベスト プラクティスに従って構成されているかを評価します。

詳細については、次の「SQL ベスト プラクティス評価」のビデオをご覧ください。

概要

SQL ベスト プラクティス 評価機能が有効になると、SQL Server インスタンスとデータベースがスキャンされ、インデックス、非推奨の機能、トレース フラグや統計の有効化または欠落などの推奨事項が提供されます。推奨事項は、Azure portalSQL VM 管理ページに表示されます。

評価の結果は、Azure Monitor Agent (AMA) を使用して Log Analytics ワークスペースにアップロードされます。 AMA 拡張機能がまだインストールされていない場合は、SQL Server VM にインストールされ、DCEDCR などの AMA リソースが作成され、指定された Log Analytics ワークスペースに接続されます。

評価の実行時間は、環境 (データベースやオブジェクトの数など) に依存し、数分から最大 1時間の期間があります。 同様に、評価結果のサイズも環境によって異なります。 評価は、インスタンスと、そのインスタンス上のすべてのデータベースに対して実行されます。 このテストでは、評価の実行がコンピューターに最大5-10% の CPU 影響を与えることを確認しました。 これらのテストでは、SQL Server に対して TPC-C などのアプリケーションが実行されている間に評価が行われました。

前提条件

SQL ベスト プラクティス評価機能を使用するには、次の前提条件が必要です。

有効にする

Azure portal または Azure CLI を使用して、SQL ベスト プラクティス アセスメントを有効にすることができます。

Azure portal を使用して SQL ベスト プラクティス アセスメントを有効にするには、次の手順を行います。

  1. Azure portalにサインインし、 SQL ServerVM リソースに移動します。
  2. [設定][SQL ベストプラクティス評価]を選択します。
  3. [SQL ベスト プラクティス評価の有効化]または [構成]を選択して、[構成]ページに移動します。
  4. [SQL ベスト プラクティス評価の有効化] チェックボックスをオンにして、次の情報を入力します。
    1. 評価がアップロードされる Log Analytics ワークスペース ドロップダウンからサブスクリプション内の既存のワークスペースを選択します。
    2. Azure Monitor Agent リソースである DCEDCR が作成されるリソース グループを選択します。 複数の SQL Server VM で同じリソース グループを指定した場合、これらのリソースは再利用されます。
    3. 実行スケジュール 必要に応じて評価を実行するか、スケジュールに基んで自動的に評価を実行することもできます。 スケジュールを選択した場合は、頻度 (毎週または毎月)、週の日、繰り返し (1 ~ 6 週間ごとに)、評価を開始する時刻 (VM 時間に対してローカル) を指定します。
  5. [Apply](適用) を選択して変更内容を保存し、Azure Monitor Agent がまだ SQL Server VM にデプロイされていない場合はデプロイします。 SQL ベスト プラクティス評価機能が SQL Server VM で使用できるようになると、Azure portal 通知で知らされます。

VMのSQL Server評価

評価の実行。

  • [スケジュールに従う]
  • オン デマンド

スケジュールされた評価を実行する

Azure portal と Azure CLI を使用して、スケジュールに従って評価を構成できます。

[構成]ウィンドウでスケジュールを設定した場合、指定した日時に評価が自動的に実行されます。 構成 を選択して評価スケジュールを変更します。 新しいスケジュールを指定すると、以前のスケジュールが上書きされます。

オンデマンド評価を実行します。

SQL Server VM で SQL ベスト プラクティス アセスメント機能を有効にした後、Azure portal または Azure CLI を使用してオンデマンドで評価を実行することができます。

Azure portal を使用してオンデマンド評価を実行するには、[Azure portal SQL Server VM リソース]ページの[SQL ベスト プラクティス アセスメント]ウィンドウから[評価の実行]を選択します。

結果の表示

[SQL ベスト プラクティス評価] ページの [評価の結果] セクションに、最近実行された評価の一覧が表示されます。 各行には、実行の開始時刻と状態 (スケジュール済み、実行中、結果のアップロード、完了、失敗) が表示されます。 各評価の実行には、インスタンスを評価し、結果を Log Analyticsワークスペースにアップロードする 2 つの部分があります。 状態フィールドは両方の部分を対象とします。 価結果は Azureブックに表示されます。

評価結果のAzureブックにアクセスするには、次の 3つの方法があります。

  • [SQL ベスト プラクティス評価] ページで、[最近成功した評価を表示] ボタン を選択します。
  • [SQL ベスト プラクティス評価]ページの[評価の結果]セクションから、完了した実行を 1 つ選択します。
  • SQL VMリソースページの概要ページに表示される上位10のレコメンデーションから評価結果の表示を選択します。

ブックを開いた後、ドロップダウンを使用して以前の実行を選択できます。 結果ページを使用して1回の実行の結果を表示したり、傾向ページを使用して履歴の傾向を確認したりできます。

[結果] ページ

結果 ページでは、すべて、 新規、および 解決済みのタブを使用して、推奨事項が整理されます。 これらのタブを使用して、現在の実行のすべての推奨事項、すべての新しい推奨事項 (以前の実行からの差分)、または以前の実行から解決された推奨事項を表示します。 タブを使用すると、実行間の進行状況を追跡できます。 インサイトタブでは、最も繰り返される問題と、最も問題が発生しているデータベースが識別されます。 これらを使用して、作業を集中する場所を決定します。

グラフでは、評価の結果を異なる重大度カテゴリ (高、中、低) にグループ化します。 各カテゴリを選択して推奨事項の一覧を表示するか、検索ボックスでキー フレーズを検索します。 最も厳しい推奨事項から始め、一覧に移動するのが最善です。

最初のグリッドには、それぞれの推奨事項と、その環境で発生したインスタンスの数が表示されます。 最初のグリッドで行を選択すると、その特定の推奨事項のすべてのインスタンスが 2 番目のグリッドに表示されます。 最初のグリッドに何も選択されていない場合は、すべての推奨事項が 2 番目のグリッドに表示されます。 これは、長いリストになる可能性があります。 グリッドの上にあるドロップダウン (名前、重大度、タグ、チェック ID) を使用して、結果をフィルター処理できます。 また、各グリッドの右上隅にある小さなアイコンを選択して、[Excel にエクスポート] を使用して、[ログ ビューで最後の実行クエリを開く]のオプションを 使用することもできます。

グラフの渡れたセクションは、システムが既に従っている推奨事項を識別します。

長い説明や関連するオンライン リソースなど、メッセージフィールドを選択して、各推奨事項の詳細情報を表示します。

傾向ページには、すべての問題、新しい問題、解決された問題の3つのグラフがあります。 グラフは、進行状況を確認するのに役立ちます。 解決された問題の数が増え続けながら、推奨事項の数が少なからず行くのが理想的です。 凡例には、各重大度レベルの問題の平均数が表示されます。 バーにカーソルを合わせると、実行ごとに個々の値が表示されます。

1日に複数の実行がある場合、最新の実行だけが傾向ページのグラフに 含まれます。

サブスクリプション内のすべての VM に対して有効にする

Azure CLI を使用して、サブスクリプション内のすべての SQL Server VM で SQL ベスト プラクティス アセスメント機能を有効にすることができます。 そのためには、次のスクリプトの例を使用します。

# This script is formatted for use with Az CLI on Windows PowerShell. You may need to update the script for use with Az CLI on other shells.
# This script enables SQL best practices assessment feature for all SQL Servers on Azure VMs in a given subscription. It configures the VMs to use a Log Analytics workspace to upload assessment results. It sets a schedule to start an assessment run every Sunday at 11pm (local VM time).
# Please note that if a VM is already associated with another Log Analytics workspace, it will give an error.
 
$subscriptionId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
# Resource Group where the Log Analytics workspace belongs
$myWsRg = 'myWsRg'
# Log Analytics workspace where assessment results will be stored
$myWsName = 'myWsName'
# Resource Group where the Azure Monitor Agent resources will be created
$myAgentRg = 'myAgentRg'
 
# Ensure in correct subscription
az account set --subscription $subscriptionId
 
$sqlvms = az sql vm list | ConvertFrom-Json 
 
foreach ($sqlvm in $sqlvms)
{
  echo "Configuring feature on $($sqlvm.id)"
  az sql vm update --assessment-weekly-interval 1 --assessment-day-of-week Sunday --assessment-start-time-local "23:00" --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name
  
  # Alternatively you can use this command to only enable the feature without setting a schedule
  # az sql vm update --enable-assessment true --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name  
 
  # You can use this command to start an on-demand assessment on each VM
  # az sql vm start-assessment -g $sqlvm.resourceGroup -n $sqlvm.name
}

既知の問題

SQL ベスト プラクティス評価を使用する際に、以下の既知の問題のいくつかに遭遇する可能性があります。

Microsoft Monitoring Agent (MMA) から Azure Monitor Agent (AMA) への移行

以前は、SQL のベスト プラクティス アセスメント機能では、MMA を使用して評価を Log Analytics ワークスペースにアップロードしていました。 MMA は廃止されます。 この機能では、AMA を使用して評価をアップロードするようになりました。 過去に MMA を使用して SQL ベスト プラクティス アセスメントを有効にしている場合は、最初に機能を無効にしてから再度有効にすることで、簡単に AMA へ移行できます。 既存の結果は、同じ Log Analytics ワークスペースを指定する限り、無効化/有効化操作の後でも使用できます。 他のサービスで使用されていない場合は、次の 手順に従って、この時点で Microsoft Monitoring Agent を削除できます。 移行する前に、ここでリンクされているテーブルを使用して、SQL Server VM が存在するリージョンで Azure Monitor Log Analytics がサポートされていることを確認してください。

評価の有効化または実行に関するデプロイエラー

失敗したアクションに関連付けられているエラー メッセージを表示するには、SQL VMを含むリソース グループのデプロイ履歴を参照してください。

失敗した評価

何らかの理由で評価または結果のアップロードが失敗した場合、その実行の状態はエラーを示します。 状態をクリックするとコンテキスト ウィンドウが開き、エラーの詳細と問題を修復する方法を確認できます。

ヒント

WindowsでTLS 1.0 以降を適用し、ここで説明するように古いSSLプロトコルを無効にした場合は、強力な暗号化を使用するように .NET Framework が構成されていることを確認する必要があります。

次の手順

  • SQL Server VM を azure VM 上の SQL Server に SQL Server IaaS 拡張機能に登録するには、自動インストール単一VMs、またはVM の一括登録 に関する記事を参照してください。
  • Azure VM 上の SQL Server に対して SQL Server IaaS 拡張機能で使用できるその他の機能については、「SQL Server VM を管理する」を参照Azure portal