次の方法で共有


クエリの監視とワークロード パフォーマンスの向上のために Azure portal で自動チューニングを有効にする

適用対象: Azure SQL Database Azure SQL Managed Instance

Azure SQL Database では、データ サービスが自動的に管理されます。データ サービスが常にクエリを監視し、ワークロードのパフォーマンスを向上させるために実行できるアクションを識別します。 推奨事項を確認し、手動で適用できます。また、Azure SQL Database で自動的に是正措置を適用することもできます (自動チューニング モードともいう)。

サーバーまたはデータベース レベルで自動チューニングを有効にすることができます。次の方法があります。

Note

Azure SQL Managed Instance でサポートされているオプション FORCE_LAST_GOOD_PLAN は、T-SQL を使用してのみ構成できます。 この記事で説明している Azure portal ベースの構成とインデックスの自動チューニング オプションは、Azure SQL Managed Instance には適用されません。

Note

現時点では、ARM (Azure Resource Manager) テンプレートを使った自動チューニング オプションの構成はサポートされていません。

サーバーでの自動チューニングの有効化

自動チューニングの構成を [Azure の既定値] から継承するかどうかをサーバー レベルで選択できます。 Azure の既定値は、FORCE_LAST_GOOD_PLAN が有効で、CREATE_INDEX が無効で、DROP_INDEX が無効です。

Azure portal

Azure SQL Database のサーバーで自動チューニングを有効にするには、Azure portal でサーバーに移動し、メニューで [自動チューニング] を選択します。

スクリーンショットには、サーバーのオプションを適用できる、Azure portal での自動チューニングが示されています。

次のように、有効にする自動チューニング オプションを選択し、 [適用] を選択します。

サーバーの自動チューニング オプションは、このサーバー上のすべてのデータベースに適用されます。 既定では、すべてのデータベースがその親サーバーから構成を継承しますが、これをオーバーライドし、各データベースに対して個別に指定することができます。

REST API

REST API を使用してサーバーの自動チューニングを有効にする方法については、サーバーの自動チューニングの UPDATE メソッドと GET HTTP メソッドに関するページを参照してください。

個々のデータベースで自動チューニングを有効にする

Azure SQL Database では、各データベースの自動チューニング構成を個別に指定することができます。 自動チューニングの構成を親サーバーから継承するか、[Azure の既定値] から継承するか、または構成を継承しないかをデータベース レベルで選択できます。 Azure の既定値では、FORCE_LAST_GOOD_PLAN が有効に、CREATE_INDEX が無効に、DROP_INDEX が無効に設定されています。

ヒント

一般的な推奨事項は、すべてのデータベースで同じ構成設定を自動的に適用できるように、サーバー レベルで自動チューニング構成を管理することです。 個々のデータベースの設定が、同じサーバーから設定を継承している他のデータベースの設定と異なるようにする必要がある場合にのみ、個々のデータベースで自動チューニングを構成します。

Azure portal

単一データベースで自動チューニングを有効にするには、Azure portal でデータベースに移動し、 [自動チューニング] を選択します。

個々の自動チューニング設定は、データベースごとに個別に構成できます。 個々の自動チューニング オプションを手動で構成したり、オプションがサーバーから設定を継承するように指定したりできます。

スクリーンショットには、単一データベースのオプションを適用できる、Azure portal での自動チューニングを示されています。

目的の構成を選択したら、 [適用] をクリックします。

REST API

REST API を使用して単一データベースの自動チューニングを有効にする方法については、Azure SQL Database の自動チューニングの UPDATE メソッドと GET HTTP メソッドに関するページを参照してください。

T-SQL

T-SQL から単一データベースの自動チューニングを有効にするには、データベースに接続して次のクエリを実行します。

ALTER DATABASE current SET AUTOMATIC_TUNING = AUTO | INHERIT | CUSTOM

自動チューニングを AUTO に設定すると、"Azure の既定値" が適用されます。 INHERIT に設定した場合は、自動チューニングの構成が親サーバーから継承されます。 CUSTOM を選択した場合は、自動チューニングを手動で構成する必要があります。

T-SQL で個々の自動チューニング オプションを構成するには、データベースに接続して、たとえば次のクエリを実行します。

ALTER DATABASE current SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON, CREATE_INDEX = ON, DROP_INDEX = OFF)

個々のチューニング オプションを ON に設定した場合、データベースによって継承された設定がオーバーライドされて、そのチューニング オプションが有効になります。 個々のチューニング オプションを OFF に設定した場合は、データベースによって継承された設定が同じようにオーバーライドされたうえで、そのチューニング オプションが無効になります。 自動チューニング オプションに DEFAULT を指定した場合、サーバー レベル設定から自動チューニング構成が継承されます。

重要

アクティブ geo レプリケーションの場合、プライマリ データベースのみで自動チューニングを構成する必要があります。 インデックスの作成や削除など、自動的に適用されるチューニング アクションは、geo セカンダリに自動的にレプリケートされます。 読み取り専用のセカンダリで T-SQL を使用して自動チューニングを有効にしようとすると、その読み取り専用のセカンダリで別のチューニング構成を使用することはサポートされていないため、失敗します。

自動チューニングを構成する T-SQL のオプションの詳細については、ALTER DATABASE SET オプション (Transact-SQL) に関するページを参照してください。

トラブルシューティング

レコメンデーションの自動管理が無効になっている

レコメンデーションの自動管理が無効になっているというエラー メッセージが表示された場合、または単にシステムによって無効にされた場合、最も一般的な原因は次のとおりです。

  • クエリ ストアが有効になっていない、または
  • クエリ ストアが、指定されたデータベースに対して読み取り専用モードになっている、または
  • クエリ ストアの割り当てられたストレージ スペースが不足したため、実行を停止した

この問題を修正するには、次の手順を検討してください。

  • クエリ ストアをクリーンアップするか、T-SQL を使用してデータ保持期間を "auto" に変更するか、クエリ ストアの最大サイズを増やします。 クエリ ストアに推奨される保持期間とキャプチャ ポリシーを構成する方法については、こちらを参照してください。
  • SQL Server Management Studio (SSMS) を使用して、次の手順に従ってください:
    • Azure SQL Database に接続する
    • データベースを右クリックする
    • [プロパティ] にアクセスし、[クエリ ストア] をクリックする
    • [操作モード] を [読み取り/書き込み] に変更する
    • [ストア キャプチャ モード] を [自動] に変更する
    • [サイズ ベースのクリーンアップ モード] を [自動] に変更する

アクセス許可

Azure SQL Database の場合、Azure portal での自動チューニングの管理、または PowerShell または REST API の使用には、Azure 組み込み RBAC ロールのメンバーシップが必要です。

自動チューニングを管理するために、ユーザーに付与する必要がある最小限のアクセス許可は、SQL Database 共同作成者ロールのメンバーシップです。 また、SQL Server 共同作成者、共同作成者、所有者など、上位の特権ロールの使用を検討することもできます。

T-SQL を使用した自動チューニングの管理に必要なアクセス許可については、ALTER DATABASEアクセス許可に関する記事を参照してください。

メール通知の自動チューニングの構成

自動チューニングによって作成されたレコメンデーションに関する通知を電子メールで自動的に受信するには、自動チューニングの電子メール通知ガイドを参照してください。

次のステップ