SQL Server 2025 の新機能は AI 関連の機能 が大きな機能追加となっていますが、データベースエンジンのパフォーマンスを向上させるための機能も追加が行われています。
本投稿では、パフォーマンスの向上のための機能としてどのような機能が含まれているのかをまとめたいと思います。
本投稿は SQL Server 2025 の Deck を元に記載しています。SQL Server 2025 Demos でデモコードも公開されています。
公式のドキュメントとしては データベース エンジン / クエリ ストアとインテリジェントなクエリ処理 に記載されています。
Contents
SQL Server 2025 のパフォーマンス向上のための新機能
SQL Server 2025 のスライドに記載されていますが、パフォーマンス向上のための機能としては次のような機能が記載されています。
ロックの最適化
- 最適化されたロック
- Understanding Optimized Locking in Azure SQL Database
- Demo: Optimized locking SQL Server 2025
- 大きなトランザクションを実行した際に取得されるロックとしてトランザクション ID (TID) ロックと、修飾後ロック (LAQ) を使用することで、取得されるロック数を削減する
tempdb の最適化
- tempdb のスペースのリソースのガバナンス
- GROUP_MAX_TEMPDB_DATA_MB / GROUP_MAX_TEMPDB_DATA_PERCENT によるワークロードグループに対しての tempdb の使用可能サイズの制御
- Demo: Tempdb space resource governance
- tempdb の高速データベース復旧 (ADR)
- tempdb のログ記録については、最小限に抑えられるようになっているが、大規模なトランザクション発生時には、 tempdb のログの使用状況が上昇する可能性があり、ロールバックが発生した際には、長時間、ログ使用率が上昇している可能性がある
- tempdb の ADR により、即時ロールバックを可能とする
- 有効化 / 無効化にはデータベースエンジンの再起動が必要となる
- linux での tempdb の tmpfs のサポート
- tmpfs 上に tempdb を配置し、メモリを活用した高性能な tempdb の提供
変更の追跡の機能強化
- 変更の追跡のクリーンアップの機能強化
- SQL Server 2022 までは、30 分ごとにクリーンアップスレッドが起動し、変更の追跡が有効化されたすべてのデータベースとテーブルをフェッチし、クリーンアップを実施
- SQL Server 2025 では新しいクリーンアップアプローチが導入され、対象となるすべてのデータが削除されるまで増分ステップで削除される
- 既定で有効になっており、従来と同じ挙動にするためには TF8273 を有効化する
列ストアインデックスの機能強化
- 列ストアの機能強化
- 順序付き列ストアインデックス
- 順序付き列ストアインデックスのオンラインインデックスメンテナンス
- データファイルの圧縮のサポート
IQP の機能強化
- 式に対するカーディナリティ推定 (CE) のフィードバック
- 省略可能なパラメーター プランの最適化 (Optional parameter plan optimization: OPPO)
- Degree of parallelism (DOP) feedback がデフォルトで有効
- 最適化されたハロウィンプロテクション
可用性グループの読み取り可能なセカンダリの機能強化
- 読み取り可能なセカンダリの永続化された統計
- SQL Server 2022 では、TF12606 を指定して明示的に有効化が必要
- SQL Server 2025 では、既定で有効になってい
- 読み取り可能なセカンダリのクエリ ストア
- SQL Server 2022 では、TF12606 を指定して明示的に有効化が必要
- SQL Server 2025 では、既定で有効な状態となっている (TF12606 指定すると機能が無効になる)
クエリ実行の機能強化
- ABORT_QUERY_EXECUTION クエリ ヒント
- ABORT_QUERY_EXECUTION query hint – public preview
- Demo: ABORT_QUERY_EXECUTION query hint in SQL Server 2025
- 最適化された sp_executesql
- OPTIMIZED_SP_EXECUTESQL の設定変更により、sp_executesql のクエリをシリアル化コンパイル動作を行う。
- Demo: Optimized sp_executesql in SQL Server 2025
- ビルトイン関数のバッチモードの最適化
In-Memory OLTP の機能強化
- メモリ最適化コンテナーとファイル グループの削除
- SQL Server 2022 までは、In-Memory OLTP のオブジェクトを削除しても、メモリ最適化用のコンテナーとファイルグループを削除することができず、オブジェクトが無い状態でも、In-Memory OLTP エンジンが動作した状態となっていた
- SQL Server 2025 では削除することができるように In-Memory OLTP エンジンが完全に停止できるようになった。
最後に
冒頭で記載した Deck では、Bob Ward / Erin Stellato のピックアップした注目の機能 TOP 5 が紹介されています。
Bob Ward がピックアップした新機能でパフォーマンスに関するものとしては、最適化されたロック / tempdb のスペースのリソースのガバナンス が挙げられていました。
Erin Stellato のピックアップした機能にも 最適化されたロック が含まれていますので、パフォーマンス観点の機能向上として最適化されたロックの挙動は把握しておきたいですね。
次に SQL Server の新機能について投稿を書く時には、これらの機能について確認してみたいです。