Azure SQL Database および Azure SQL Managed Instance での自動チューニングAutomatic tuning in Azure SQL Database and Azure SQL Managed Instance

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

Azure SQL Database および Azure SQL Managed Instance の自動チューニングでは、AI と機械学習に基づく継続的なパフォーマンス チューニングによって、最大限のパフォーマンスと安定したワークロードが実現されます。Azure SQL Database and Azure SQL Managed Instance automatic tuning provides peak performance and stable workloads through continuous performance tuning based on AI and machine learning.

自動チューニングはフル マネージドのインテリジェントなパフォーマンス サービスであり、組み込みのインテリジェンスを使用してデータベースに対して実行されるクエリを継続的に監視し、パフォーマンスを自動的に改善します。Automatic tuning is a fully managed intelligent performance service that uses built-in intelligence to continuously monitor queries executed on a database, and it automatically improves their performance. これは変動するワークロードに対してデータベースを適応させること、およびチューニングの推奨事項を適用することを動的に実施することで実現しています。This is achieved through dynamically adapting database to the changing workloads and applying tuning recommendations. 自動チューニングは、AI を介して Azure 上のすべてのデータベースから水平方向に学習し、チューニング操作を動的に改善します。Automatic tuning learns horizontally from all databases on Azure through AI and it dynamically improves its tuning actions. 自動チューニングが有効な状態で Azure SQL Database を実行している時間が長くなるほど、パフォーマンスが向上します。The longer a database runs with automatic tuning on, the better it performs.

Azure SQL Database および Azure SQL Managed Instance の自動チューニングは、安定した最大限のデータベース ワークロードの実行を可能にするために利用できる機能の中で、最も重要な機能の 1 つと言えます。Azure SQL Database and Azure SQL Managed Instance automatic tuning might be one of the most important features that you can enable to provide stable and peak performing database workloads.

自動チューニングでできることWhat can automatic tuning do for you

  • データベースのパフォーマンスの自動チューニングAutomated performance tuning of databases
  • パフォーマンス向上の自動検証Automated verification of performance gains
  • 自動ロールバックと自己修正Automated rollback and self-correction
  • チューニングの履歴Tuning history
  • 手動でデプロイするためのアクション Transact-SQL (T-SQL) スクリプトのチューニングTuning action Transact-SQL (T-SQL) scripts for manual deployments
  • ワークロードのパフォーマンスのプロアクティブな監視Proactive workload performance monitoring
  • 数十万のデータベースのスケールアウト機能Scale out capability on hundreds of thousands of databases
  • DevOps リソースと総保有コストに対する良い影響Positive impact to DevOps resources and the total cost of ownership

安全性、信頼性、実証済みSafe, Reliable, and Proven

Azure SQL Database のデータベースに適用されるチューニング操作は、最も負荷の高いワークロードのパフォーマンスに対して、安全性の高い操作になっています。Tuning operations applied to databases in Azure SQL Database are fully safe for the performance of your most intense workloads. このシステムは、ユーザーのワークロードに干渉しないように注意して設計されています。The system has been designed with care not to interfere with the user workloads. 自動チューニングの推奨事項は、使用率が低い時間帯にのみ適用されます。Automated tuning recommendations are applied only at the times of a low utilization. ワークロードのパフォーマンスを損なわないように、自動チューニング操作を、システムによって一時的に無効にすることもできます。The system can also temporarily disable automatic tuning operations to protect the workload performance. その場合、"システムによる無効化" メッセージが Azure portal に表示されます。In such case, "Disabled by the system" message will be shown in Azure portal. 自動チューニングはリソースの優先順位が最も高いワークロードに注意を払います。Automatic tuning regards workloads with the highest resource priority.

自動チューニングは非常に成熟したしくみですが、Azure で実行されている数百万のデータベース上でさらに洗練されたものになりました。Automatic tuning mechanisms are mature and have been perfected on several million databases running on Azure. 適用される自動チューニング操作は自動的に検証され、ワークロードのパフォーマンスに積極的な改善がみられるようにします。Automated tuning operations applied are verified automatically to ensure there is a positive improvement to the workload performance. パフォーマンスの後退に関する推奨事項が動的に検出され、すばやく以前の設定に戻されます。Regressed performance recommendations are dynamically detected and promptly reverted. 記録されたチューニングの履歴を見ると、Azure SQL Database および Azure SQL Managed Instance 内の各データベースに対して実行されたチューニングによる改善の痕跡をはっきりと確認できます。Through the tuning history recorded, there exists a clear trace of tuning improvements made to each database in Azure SQL Database and Azure SQL Managed Instance.

自動チューニングのしくみ

Azure SQL Database の自動チューニングの核となるロジックは、データベース エンジンの SQL Server 自動チューニング機能でも使用されています。Azure SQL Database automatic tuning is sharing its core logic with the SQL Server automatic tuning feature in the database engine. 組み込みインテリジェンスのしくみに関する技術的な情報の詳細については、SQL Server の自動チューニングに関する記事をご覧ください。For additional technical information on the built-in intelligence mechanism, see SQL Server automatic tuning.

自動チューニングのしくみの概要と一般的な使用シナリオについては、埋め込みのビデオをご覧ください。For an overview of how automatic tuning works and for typical usage scenarios, see the embedded video:

自動チューニングの有効化Enable automatic tuning

自動チューニング オプションAutomatic tuning options

Azure SQL Database および Azure SQL Managed Instance で使用可能な自動チューニング オプションは次のとおりです。The automatic tuning options available in Azure SQL Database and Azure SQL Managed Instance are:

自動チューニング オプションAutomatic tuning option 単一データベースとプールされたデータベースのサポートSingle database and pooled database support インスタンス データベースのサポートInstance database support
CREATE INDEX - ご自分のワークロードのパフォーマンスを向上させる可能性があるインデックスを特定し、インデックスを作成して、クエリのパフォーマンスが向上したことを自動的に確認します。CREATE INDEX - Identifies indexes that may improve performance of your workload, creates indexes, and automatically verifies that performance of queries has improved. はいYes いいえNo
DROP INDEX - 一意なインデックスを除く冗長なインデックスや重複するインデックス、また長期間 (90 日超) 使用されていないインデックスを特定します。DROP INDEX - Identifies redundant and duplicate indexes daily, except for unique indexes, and indexes that were not used for a long time (>90 days). なお、このオプションはパーティション切り替えやインデックス ヒントを使用するアプリケーションと互換性がありません。Please note that this option is not compatible with applications using partition switching and index hints. Premium および Business Critical サービスレベルでは、使われていないインデックスの削除はサポートされていません。Dropping unused indexes is not supported for Premium and Business Critical service tiers. はいYes いいえNo
FORCE LAST GOOD PLAN (自動プラン修正) - 以前の良好なプランよりも速度の低い実行プランを使用している Azure SQL クエリを特定し、その低速なプランの代わりに、最後に確認された良好なプランを使用してクエリを実行します。FORCE LAST GOOD PLAN (automatic plan correction) - Identifies Azure SQL queries using an execution plan that is slower than the previous good plan, and queries using the last known good plan instead of the regressed plan. はいYes はいYes

SQL Database の自動チューニングAutomatic tuning for SQL Database

Azure SQL Database の自動チューニングでは、CREATE INDEXDROP INDEXFORCE LAST GOOD PLAN データベース アドバイザーの推奨設定を使用して、データベースのパフォーマンスが最適化されます。Automatic tuning for Azure SQL Database uses the CREATE INDEX, DROP INDEX, and FORCE LAST GOOD PLAN database advisor recommendations to optimize your database performance. 詳細については、Azure portal での Database Advisor の推奨事項PowerShell、および REST API を参照してください。For more information, see Database advisor recommendations in the Azure portal, in PowerShell, and in the REST API.

Azure portal を使用してチューニングの推奨事項を手動で適用するか、または自動チューニングでチューニングの推奨事項を自律的に適用することができます。You can either manually apply tuning recommendations using the Azure portal or you can let automatic tuning autonomously apply tuning recommendations for you. システムで自律的にチューニングの推奨事項を適用する利点は、ワークロードのパフォーマンスが向上することが自動的に検証されることです。パフォーマンスの顕著な向上が検出されない場合、チューニングの推奨事項は自動的に元に戻されます。The benefits of letting the system autonomously apply tuning recommendations for you is that it automatically validates there exists a positive gain to the workload performance, and if there is no significant performance improvement detected, it will automatically revert the tuning recommendation. 頻繁に実行されないクエリがチューニングの推奨事項によって影響を受ける場合、設計上、検証フェーズに最大で 72 時間かかる可能性があることに注意してください。Please note that in case of queries affected by tuning recommendations that are not executed frequently, the validation phase can take up to 72 hrs by design.

T-SQL を使用してチューニングの推奨事項を適用する場合は、パフォーマンスの自動検証および取り消しメカニズムは使用できません。In case you are applying tuning recommendations through T-SQL, the automatic performance validation, and reversal mechanisms are not available. そのような方法で適用された推奨事項は、24 時間から 48 時間、アクティブなままになり、チューニングの推奨事項の一覧に表示された後、Recommendations applied in such way will remain active and shown in the list of tuning recommendations for 24-48 hrs. 自動的に取り消されます。before the system automatically withdraws them. 推奨事項をすぐに削除する場合は、Azure portal から破棄できます。If you would like to remove a recommendation sooner, you can discard it from Azure portal.

自動チューニング オプションをデータベースごとに個別に有効または無効にすることも、サーバーレベルで構成し、サーバーから設定を継承するすべてのデータベースに適用することもできます。Automatic tuning options can be independently enabled or disabled per database, or they can be configured at the server-level and applied on every database that inherits settings from the server. サーバーでは、自動チューニングの設定について、Azure の既定値を継承できます。Servers can inherit Azure defaults for automatic tuning settings. 現時点の Azure の既定値では、FORCE_LAST_GOOD_PLAN と CREATE_INDEX が有効に、DROP_INDEX が無効に設定されています。Azure defaults at this time are set to FORCE_LAST_GOOD_PLAN is enabled, CREATE_INDEX is enabled, and DROP_INDEX is disabled.

重要

2020 年 3 月より、自動チューニングに関する Azure の既定値の変更は次のように有効になります。As of March, 2020 changes to Azure defaults for automatic tuning will take effect as follows:

  • 新しい Azure の既定値では、FORCE_LAST_GOOD_PLAN が有効、CREATE_INDEX が無効、DROP_INDEX が無効になります。New Azure defaults will be FORCE_LAST_GOOD_PLAN = enabled, CREATE_INDEX = disabled, and DROP_INDEX = disabled.
  • 自動チューニング設定が構成されていない既存のサーバーは、新しい Azure の既定値を継承するように自動的に構成されます。Existing servers with no automatic tuning preferences configured will be automatically configured to INHERIT the new Azure defaults. これは、現在未定義の状態の自動チューニングのサーバー設定があるすべてのお客様に適用されます。This applies to all customers currently having server settings for automatic tuning in an undefined state.
  • 新しく作成されたサーバーは、新しい Azure の既定値を継承するように自動的に構成されます (新しいサーバーの作成時に自動チューニング構成が未定義の状態だった以前とは異なります)。New servers created will automatically be configured to INHERIT the new Azure defaults (unlike earlier when automatic tuning configuration was in an undefined state upon new server creation).

多数のデータベースの自動チューニング オプションの管理が簡素化されるため、自動チューニングを構成するために推奨される方法は、サーバーでの自動チューニング オプションの構成と、親サーバーに属するデータベースの設定の継承です。Configuring automatic tuning options on a server and inheriting settings for databases belonging to the parent server is a recommended method for configuring automatic tuning as it simplifies management of automatic tuning options for a large number of databases.

自動チューニングの推奨情報に関するメール通知の作成については、「自動チューニングの電子メール通知」を参照してください。To learn about building email notifications for automatic tuning recommendations, see Email notifications for automatic tuning.

Azure SQL Managed Instance の自動チューニングAutomatic tuning for Azure SQL Managed Instance

SQL Managed Instance の自動チューニングでは、FORCE LAST GOOD PLAN のみがサポートされます。Automatic tuning for SQL Managed Instance only supports FORCE LAST GOOD PLAN. T-SQL による自動チューニング オプションの構成の詳細については、自動チューニングでの自動プラン修正の導入自動プラン修正に関するページを参照してください。For more information about configuring automatic tuning options through T-SQL, see Automatic tuning introduces automatic plan correction and Automatic plan correction.

次のステップNext steps