Azure SQL Database での自動チューニングAutomatic tuning in Azure SQL Database

Azure SQL Database の自動チューニングは、AI と機械学習に基づく継続的なパフォーマンス チューニングによって、最大限のパフォーマンスと安定したワークロードを実現します。Azure SQL Database 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 an Azure SQL Database runs with automatic tuning on, the better it performs.

Azure SQL Database の自動チューニングは、安定した最大限のデータベース ワークロードの実行を可能にするために利用できる機能の中で、最も重要な機能の 1 つと言えます。Azure SQL Database 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?

  • Azure SQL データベースのパフォーマンスの自動チューニングAutomated performance tuning of Azure SQL databases
  • パフォーマンス向上の自動検証Automated verification of performance gains
  • 自動ロールバックと自己修正Automated rollback and self-correction
  • チューニングの履歴Tuning history
  • 手動でデプロイするためのアクション T-SQL スクリプトのチューニングTuning action 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 データベースに適用されるチューニング操作は、最も負荷の高いワークロードのパフォーマンスに対して、安全性の高い操作になっています。Tuning operations applied to Azure SQL databases 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 に対して実行されたチューニングによる改善の痕跡をはっきりと確認できます。Through the tuning history recorded, there exists a clear trace of tuning improvements made to each Azure SQL Database.

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

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

自動チューニングを使用するUse Automatic tuning

自動チューニングは、お使いのサブスクリプションで有効にする必要があります。Automatic tuning needs to be enabled on your subscription. Azure Portal を使用して自動チューニングを有効にするには、「自動チューニングの有効化」をご覧ください。To enable automatic tuning using Azure portal, see Enable automatic tuning.

自動チューニングは、パフォーマンス向上の自動検証などの、チューニングの推奨事項を自動的に適用することで自律的な動作が可能です。Automatic tuning can operate autonomously through automatically applying tuning recommendations, including automated verification of performance gains.

細かく制御する場合は、チューニングの推奨事項が自動的に適用されるのを無効にできます。チューニングの推奨事項は Azure Portal から手動で適用できます。For more control, automatic application of tuning recommendations can be turned off, and tuning recommendations can be manually applied through Azure portal. ソリューションを使用して自動チューニングに関する推奨事項のみを表示し、任意のスクリプトやツールを使用して手動で適用することもできます。It is also possible to use the solution to view automated tuning recommendations only and manually apply them through scripts and tools of your choice.

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

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

Azure SQL Database で使用可能な自動チューニング オプションは次のとおりです。Automatic tuning options available in Azure SQL Database 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 at this time the option is not compatible with applications using partition switching and index hints. はいYes いいえNo
FORCE LAST GOOD PLAN (自動プラン修正) - 以前の良好なプランよりも速度の低い実行プランを使用している SQL クエリを特定し、その低速なプランの代わりに、最後に確認された良好なプランを使用してクエリを実行します。FORCE LAST GOOD PLAN (automatic plan correction) - Identifies SQL queries using 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

自動チューニングは、データベースのパフォーマンスを最適化できる CREATE INDEXDROP INDEX、および FORCE LAST GOOD PLAN の推奨事項を識別し、Azure portal でそれらを表示し、T-SQLREST API を通してそれらを公開します。Automatic tuning identifies CREATE INDEX, DROP INDEX, and FORCE LAST GOOD PLAN recommendations that can optimize your database performance and shows them in Azure portal, and exposes them through T-SQL and REST API. FORCE LAST GOOD PLAN と、T-SQL による自動チューニング オプションの構成の詳細については、自動チューニングでの自動プラン修正の導入に関するページを参照してください。To learn more about FORCE LAST GOOD PLAN and configuring automatic tuning options through T-SQL, see Automatic tuning introduces automatic plan correction.

ポータルを使用してチューニングの推奨事項を手動で適用するか、または自動チューニングでチューニングの推奨事項を自律的に適用することができます。You can either manually apply tuning recommendations using the 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.

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

自動チューニング オプションをデータベースごとに個別に有効または無効にすることも、SQL Database サーバーで構成し、サーバーから設定を継承するすべてのデータベースに適用することもできます。Automatic tuning options can be independently enabled or disabled per database, or they can be configured on SQL Database servers and applied on every database that inherits settings from the server. SQL Database サーバーでは、自動チューニングの設定について、Azure の既定値を継承できます。SQL Database 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.

サーバーでの自動チューニング オプションの構成と、親サーバーに属するデータベースの設定の継承は、自動チューニングを構成するための推奨される方法です。この方法では、多数のデータベースの自動チューニング オプションの管理が簡素化されるためです。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.

次の手順Next steps