Azure SQL Database: 新規作成したデータベースのクエリ パフォーマンスの向上

執筆者: Guy Haycock (Principal Product Planner, Azure Data Platform)

このポストは、6 月 7 日に投稿された Azure SQL Database query performance improvements for newly created databases の翻訳です。

 

Azure SQL Database では、何百万というデータベースの実行に複数のバージョンの T-SQL を利用して、アプリケーションの下位互換性を確保しています。SQL Database には「互換性レベル」というバージョン管理の手法が実装されています。互換性レベルは以下のとおりです。

  • SQL Server 2008 + SQL Database v11: 100

 

  • SQL Server 2012: 110

 

  • SQL Server 2014 + SQL Database v12: 120

 

  • SQL Server 2016 + SQL Database v12 (6 月中旬以降): 130

 

互換性レベル 130 を利用すると、SQL Server 2016 のクエリ プロセッサの新たな機能強化のメリットが得られます。これらの機能強化により、プランの並列実行、バッチ モードの直列実行、新しいクエリ プランの推定といった新機能を利用して、クエリ実行時のパフォーマンスを向上できます。

2016 6 月中旬より、 Azure SQL Database では新規作成したデータベースの既定の互換性レベルが 120 から 130 に変更されます。 2016 年 6 月中旬以前に作成した既存のデータベースへの影響はなく、現在の互換性レベル (100、110、120 のいずれか) が維持されます。

既存のデータベースについては、クエリ プロセッサの新機能を活用してアプリケーションのパフォーマンスを向上できるように、今回の新しい互換性レベルを適用することを強くお勧めします。互換性レベルを変更するには、以下の簡単な T-SQL ステートメントを実行します。
“ALTER DATABASE <データベース名> SET COMPATIBILITY_LEVEL = 130"

これまでの経験によると、ほとんどのワークロードは現状のまま互換性レベル 130 で実行できますが、例外は常に存在します。また、今回の機能強化がどの程度役立つのかを評価するために、十分な精査を行うことが重要です。詳細については、こちらのドキュメント (英語) をご覧ください。