パフォーマンスの構成と保守
一貫したパフォーマンスを提供するには、Azure SQL の機能を理解することが重要です。 また、Azure SQL Managed Instance および Azure SQL Databases で構成する必要のある、パフォーマンスに影響を与える可能性のあるオプションや制限について理解することも重要です。 次に例を示します。
tempdb
データベースのトピック- データベースの構成
- ファイルとファイル グループの構成
- 並列処理の最大限度の構成
- Resource Governor の使用
- インデックスと統計情報の保持
tempdb
tempdb
システム データベースは、アプリケーションによって使用される重要な共有リソースです。 tempdb
を確実に適切な構成にすることは、一貫したパフォーマンスを実現できるかどうかに影響を与える可能性があります。 tempdb
の使用方法は、SQL Server と Azure SQL のどちらの場合も同じです。 ただし、ファイルの配置、ファイルの数とサイズ、tempdb
の構成オプションなど、tempdb
を構成する機能は異なることに注意してください。
tempdb
のデータベース ファイルは常にローカル SSD ドライブに自動的に格納されるため、I/O パフォーマンスが問題になることはありません。
SQL Server の専門家は、多くの場合、tempdb
テーブルの割り当てを分割するために複数のデータベース ファイルを使用します。 Azure SQL Database の場合、ファイルの数は仮想コアの数でスケーリングされ (たとえば、2 仮想コア = 4 ファイル)、最大 16 個です。 ファイルの数は tempdb
に対する T-SQL では構成できませんが、デプロイ オプションを変更することによって構成できます。 tempdb
の最大サイズは、仮想コアの数によってスケーリングされます。 SQL Managed Instance では、仮想コアには関係なく 12 個のファイルが得られます。
データベース オプション MIXED_PAGE_ALLOCATION
は、[OFF] に設定され、AUTOGROW_ALL_FILES
は [On] に設定されます。 これを構成することはできませんが、SQL Server と同様に、これらが推奨される既定値です。
SQL Server 2019 で導入された tempdb
メタデータ最適化機能は、多発するラッチの競合を軽減できますが、現在、Azure SQL Database または Azure SQL Managed Instance では使用できません。
データベース構成
通常、データベースの構成は、T-SQL ALTER DATABASE および ALTER DATABASE SCOPED CONFIGURATION ステートメントで行います。 Azure SQL では、パフォーマンスの構成オプションの多くを使用できます。 SQL Server、Azure SQL Database、Azure SQL Managed Instance の違いについては、T-SQL リファレンスの「ALTER DATABASE」および「ALTER DATABASE SCOPED CONFIGURATION」を参照してください。
パフォーマンスに関して、変更できない 1 つのオプションがデータベースの復旧モデルです。 既定値は完全復旧です。 これにより、データベースは Azure サービス レベル アグリーメント (SLA) を確実に満たすことができます。 そのため、一括操作の最小ログ記録はサポートされていません。 一括操作での最小ログ記録は、tempdb
でサポートされています。
ファイルとファイル グループ
SQL Server の専門家は多くの場合、物理ファイルの配置によって I/O パフォーマンスを向上させるためにファイルとファイル グループを使用します。 Azure SQL では、ユーザーがファイルを特定のディスク システムに配置することはできません。 ただし、Azure SQL にはレート、IOPS、待機時間に関する I/O パフォーマンスのリソース コミットメントがあります。 このため、物理ファイルの配置からユーザーを抽象化すると、利点が得られる場合があります。
Azure SQL Database にはデータベース ファイルが 1 つしか存在せず (通常、Hyperscale には複数あります)、最大サイズは Azure インターフェイス経由で構成されます。 追加のファイルを作成する機能はありません。
Azure SQL Managed Instance では、データベース ファイルの追加やサイズの構成はサポートされていますが、ファイルの物理的な配置はサポートされていません。 SQL Managed Instance のファイルの数およびファイル サイズを使用して、I/O パフォーマンスを向上することができます。 さらに、SQL Managed Instance では、管理の容易性のためにユーザー定義のファイル グループがサポートされています。
MAXDOP の構成
並列処理の最大限度 (MAXDOP) は、個々のクエリのパフォーマンスに影響を与える可能性があります。 MAXDOP の処理方法は、SQL Server と Azure SQL で同じです。 Azure SQL では、SQL Server と同様に、次の手法を使用して MAXDOP を構成できます。
- MAXDOP を構成するための ALTER DATABASE SCOPED CONFIGURATION が Azure SQL でサポートされています。
- "並列処理の最大限度" に対するストアド プロシージャ sp_configure は、SQL Managed Instance でサポートされています。
- MAXDOP のクエリ ヒントが完全にサポートされています。
- Resource Governor での MAXDOP の構成は、SQL Managed Instance でサポートされています。
Resource Governor
Resource Governor は、I/O、CPU、メモリを通したワークロードのリソース使用状況を制御するために使用できる SQL Server の機能です。 ユーザー定義のワークロード グループとプールの場合、Resource Governor は SQL Managed Instance ではサポートされていますが、Azure SQL Database ではサポートされていないことに注意してください。
インデックスのメンテナンス
Azure SQL でのインデックスの作成とメンテナンスは SQL Server の場合とまったく同じです。 たとえば、インデックスの作成、再構築、再構成は、SQL Server と同様に完全にサポートされています。 これには、オンラインおよび再開可能なインデックスが含まれます。
統計のメンテナンス
統計の処理方法は、SQL Server と Azure SQL で同じです。 データベースの自動統計オプションは両方で使用できます。
Azure SQL のパフォーマンスの構成およびメンテナンス オプションのいくつかを学習したので、以下の知識チェックを完了してから、次のユニットに進んでください。