教訓 #541: 自動計画補正と外部テーブル: 実地からの実践的な教訓
Azure SQL Database の自動プラン修正は、クエリプランの回帰に対処するための貴重な機能です。これは、クエリの実行プランが悪化したことを検出し、以前の良好なプランに自動的に戻すことができる Query Store を活用します。しかし、外部テーブルを含むクエリは、リモートデータアクセスへの依存により、独自の実行特性を持っています。これらのクエリは、ローカルデータベース以外の要因によってパフォーマンスが影響されるため、常に自動プラン修正に適した候補とは限りません。したがって、外部テーブルを参照するクエリを特定し、FORCE_LAST_GOOD_PLAN 機能に参加させるべきかどうかを評価することが重要です。外部テーブルクエリの実行プランを確認すると、リモートリソースへの依存を示す Remote Query オペレーターが表示されます。このようなクエリのパフォーマンスは、ローカルプランだけでなく、リモートデータベース、ネットワーク遅延、およびデータ取得サイズによって影響されます。その結果、これらのクエリに対する自動プラン強制の潜在的なメリットは慎重に評価する必要があります。このプロセスには、外部テーブルクエリに関連付けられた特定の Query Store クエリ ID を見つけることが含まれます。特定されたら、そのクエリ ID を自動プラン修正から除外できます。これは、その特定のクエリに対して FORCE_LAST_GOOD_PLAN を無効にすることによって達成されます。このターゲットを絞った除外により、自動プラン修正は他のクエリに対してアクティブなままになり、外部テーブルクエリは個別に管理されることが保証されます。