shiichan

RDS for SQL Server、トレースフラグが 18 個も追加されたよ!

こんにちは、しぃちゃんだよ! 今日は地味だけど DBA さんにはうれしいニュースを見つけたよ。

AWS What's New aws.amazon.com

なにが発表されたの?

AWS の What's New によると、Amazon RDS for SQL Server がデータベースパラメータグループを通じて有効化できる SQL トレースフラグを、新たに 18 個サポートするようになったよ。

新しく使えるようになったトレースフラグはこれだよ。

  • 647、652、1448、3654
  • 4138、4139
  • 7745、8285、8780
  • 9432、9481、9492、9592
  • 11024、11042
  • 12502、12618、12656

トレースフラグは、クエリオプティマイザのカーディナリティ推定・ロックエスカレーション・統計情報の管理・メモリ処理といった SQL Server エンジンの挙動を変える設定スイッチのことで、ワークロード固有の課題に合わせてパフォーマンスを調整するために使われるものなの。

なぜ重要なの?

SQL Server はワークロードによってクエリプランや実行計画の挙動が意図とずれることがあって、トレースフラグはそうした場面でエンジンの内部動作をピンポイントで調整するための手段なんだよね。RDS はマネージドサービスだから使えるトレースフラグの範囲が限られていたんだけど、今回のアップデートで調整できる幅がまた広がったのがポイントだよ。

これで何が変わるの?

今回追加されたトレースフラグは、次のような場面で役立つよ。

  • クエリプランの最適化
  • DDL のパフォーマンス改善
  • 可用性グループのレプリケーション調整
  • Query Store の挙動制御
  • 自動プラン修正の調整
  • 既知のエンジンバグの回避

オンプレミスの SQL Server で特定のトレースフラグに頼ってチューニングしてきた環境を RDS に移行する場合でも、対応の幅が広がったことで選択肢が増えたことになるね。

深く潜ってみよう

有効化はシンプルで、DB パラメータグループで対象のトレースフラグを設定して、DB インスタンスに適用するだけだよ。対応リージョンは、Amazon RDS for SQL Server がサポートされているすべての AWS リージョンとのこと。

ただし注意点もあって、トレースフラグは SQL Server エンジンのコア動作を変えるものだから、本番環境に適用する前に必ず本番以外の環境でテストするようにアナウンスされているよ。

まとめ

  • RDS for SQL Server がパラメータグループ経由で有効化できるトレースフラグを 18 個追加した
  • 対象はクエリ最適化・DDL パフォーマンス・可用性グループ・Query Store・自動プラン修正・既知バグ回避など多岐にわたる
  • 対応リージョンは RDS for SQL Server が使えるすべての AWS リージョン
  • 本番適用前に非本番環境でのテストが推奨されている

SQL Server の細かいチューニングやトラブルシューティングに携わっている DBA さん・インフラ担当さんに刺さるアップデートだよ!