SQL Server 2012は2017年7月11日にメインストリームサポートから外れ、SQL Server 2014は2019年7月9日にメインストリームサポートから外れるため、SQLServer2008とSQLServer2008R2の両方が2019年7月9日、これらのレガシーバージョンのSQL Serverからより新しいバージョン(2016年または2017年)にアップグレードすることを計画しているクライアントが増えています。
最新バージョンのSQLServerへのアップグレードを検討している場合、SQLServer2016またはSQLServer2017に移行する必要がありますか?私の一般的なガイダンスは、正当で具体的な理由がない限り、ほとんどの場合SQLServer2017を強く好むことです。たとえば、SQL Server 2017で明示的にサポートされていないサードパーティソフトウェアがある場合、それはブロッカーになる可能性があります(ただし、それについてはソフトウェアベンダーに相談してみます)。
では、なぜSQLServer2017を好む必要があるのでしょうか。いくつかの異なるカテゴリのいくつかの理由があります。
SQLServer2017の新しいエンジン機能
SQL Server 2017での開発作業の多くは、いくつかの異なるLinuxディストリビューションで実行されるバージョンの作成に専念していましたが、SQLServer2017にはまだ多くの便利な新しいエンジン機能があります。
便利な新機能の1つは、自動プラン修正です(SQL Server 2016で導入されたクエリストア機能に依存しています)。この機能は、多くのクエリプランの安定性の問題を検出して自動的に修正するのに役立ちます。同僚のErinStellatoが、自動プラン修正と、SQL Server 2017EnterpriseEditionおよびAzureSQLDatabaseでの自動プラン修正の仕組みについて詳しく説明しています。
もう1つの新機能は、適応クエリ処理(AQP)(互換モード140で有効)です。これは、列ストアインデックスで使用されるバッチモード操作に非常に役立ちます。 AQPには、バッチモードのアダプティブメモリ付与フィードバック、バッチモードのアダプティブ結合、およびマルチステートメントテーブル値関数のインターリーブ実行を含む3つのコンポーネントがあります。
DBAの寿命を大幅に延ばす、診断とトラブルシューティングの改善も多数あります。これらには、クエリの調整に非常に役立つ複数のShowplanの機能強化と、診断のトラブルシューティングに役立ついくつかの新しいDMVが含まれます。クエリストアは、SQLServer2016と比較してSQLServer2017でさらに効率的です。
また、SQL Server 2017には、スマート差分バックアップ、スマートトランザクションログバックアップ、ハイエンドサーバー上の小規模データベースのバックアップパフォーマンスの向上、tempdbの診断と監視の向上など、いくつかの「コミュニティ主導」の機能強化がありました。
レプリケーションの機能強化
Microsoftは、SQL Server2017CU6を使用して可用性グループ内のリモートディストリビューションデータベースを保護することを可能にしました。また、SQL Server2017CU3でトランザクションエージェントプロファイルパラメーターを動的に再ロードする機能も追加されました。これにより、以前よりもレプリケーショントポロジの調整と保守がはるかに簡単になります。
Microsoftサポート
SQL Serverのメジャーバージョンがメインストリームサポートから外れると、サービスパックや累積的な更新プログラムはなくなります。メジャーバージョンが拡張サポートにある間は、セキュリティアップデートのみがリリースされます。拡張サポートが終了すると、Microsoft Premium Assurance(SQL Server 2008以降でのみ使用可能)を購入しない限り、更新はまったくありません。
このポリシーの最近の証拠は、MicrosoftがSQL Server2005用のSpectre/Meltdownセキュリティパッチをリリースしないという事実です。一般データ保護規則(GDPR)が2018年5月25日に発効すると、SQLServerの古いバージョンはMicrosoftサポートから外れるため、時間の経過とともに脆弱になります。
SQL Server 2017は、SQL Server 2016よりも約15か月長く完全にサポートされます。Microsoftには、SQLServer2008および2008R2のサポートの終了に関する多くのリソースが記載されたページがあります。
SQLServerの最近のすべてのバージョンのメインストリームおよび拡張サポートの終了日を表1に示します。
SQLServerのバージョン | ||
---|---|---|
SQL Server 2005 | 2011年4月12日 | 2016年4月12日 |
SQL Server 2008 SQL Server 2008 R2 | 2014年7月8日 | 2019年7月9日 |
SQL Server 2012 | 2017年7月11日 | 2022年7月12日 |
SQL Server 2014 | 2019年7月9日 | 2024年7月9日 |
SQL Server 2016 | 2021年7月13日 | 2026年7月14日 |
SQL Server 2017 | 2022年10月11日 | 2027年10月12日 |
Microsoftサービスポリシー
Microsoft SQL Server 2017は2017年10月2日にリリースされ、これまでに6つのSQLServer2017累積更新プログラムがリリースされています。 Microsoftは、SQL Server 2017に「最新のサービスモデル」と呼ばれるものを採用しました。これは、SQLServer2017以降のバージョンにはサービスパックがないことを意味します。
代わりに、最初の1年間は毎月の累積更新があり、その後4年間は四半期ごとの累積更新があります。これは、リリース後の最初の1年間で、欠陥がはるかに迅速に修正されることを意味します。 SQL Server 2017は十分に長い間リリースされているので、非常に安定していると思います。
マイクロソフトは、累積的な更新プログラムの特定の欠陥を修正するだけでなく、パフォーマンスの向上に重点を置いていることが多い新機能やその他の製品の改善もリリースしています。 CU6以降のSQLServer2017の更新と改善点のリストは次のとおりです。
SQL Server 2017 CU6
- SQLServer2016および2017で空間インデックスを持つクエリプランでパーティションの削除をサポートするように更新
- 改善:Linux上のSQLServer2017で「強制フラッシュ」メカニズムを有効にする
SQL Server 2017 CU5
- SQLServer2017でのクエリ内並列処理のデッドロックのトラブルシューティングの改善
- SQL Server2016および2017のクエリプランに最適化されたビットマップフィルターを適用すると、クエリのパフォーマンスが向上します
SQL Server 2017 CU4
- 改善:小規模なシステムでのSQLServer2017のパフォーマンスを改善します
SQL Server 2017 CU3
- Updateにより、SQLServer2017のCREATESTATISTICSおよびUPDATESTATISTICSステートメントのMAXDOPオプションのサポートが追加されます
- DMVのtempdbスピル診断とSQLServer2017の拡張イベントを改善する
- 更新により、XML Showplansは、SQLServer2017のクエリ最適化中に使用される統計のリストを提供できます。
- Updateは、SQLServer2017のShowplanXMLファイルにスカラー値のユーザー定義関数の実行統計を追加します
- 更新により、SQLServer2017のクエリ実行プランにオプティマイザー行の目標情報が追加されます
- 更新により、SQLServer2016および2017でPolyBaseテクノロジが有効になります
- 更新により、SQLServer2017のリソースガバナーワークグループREQUEST_MAX_CPU_TIME_SECにCPUタイムアウト設定が追加されます
SQL Server 2017 CU2
- SQLServer2017の手動変更追跡クリーンアップ手順の更新
- 改善:SQLServer2017の変更追跡クリーンアッププロセスの一般的な改善
- アップデートにより、LinuxおよびWindows上のSQLServer2017に新しい拡張イベント「marked_transaction_latch_trace」が追加されます
- SQLServer2017での空間中間フィルターのパフォーマンスの向上
SQL Server 2017 CU1
- SQLServer2016または2017の列ストア動的管理ビュー「column_store_row_groups」および「dm_db_column_store_row_group_physical_stats」のパフォーマンスを改善するための更新
- SQLServer2017で導入されたいくつかの新しいDMVおよびDMFを無効または有効にする機能を追加します
- 機能強化:CREATEおよびUPDATE STATISTICSステートメントに新しいキーワードが追加され、SQLServerでの将来の統計更新のためにサンプリングレートを維持します
SQL Server 2017は「単なるLinuxポート」であると思われるかもしれませんが、実際には、すべてのプラットフォームにメリットをもたらすコアデータベースエンジンの実際の改善点が数多くあります。 Microsoftは、SQL Server 2017の累積的な更新プログラムで製品に機能を追加し続けており、SQL Server 2017は、SQLServer2016よりも長期間にわたってMicrosoftによって完全にサポートされます。