2.セキュリティの向上
SQL Serverでは、SQL Server 2008以降で様々なセキュリティの機能が追加されています。例えば、動的データマスキングでは、接続するユーザー毎にデータをマスクしてくれる機能で、あるユーザーには機微な情報を表示させたくないような場合に有効です。
この機能は、接続するユーザー側の設定だけでよいのでアプリケーションの改修無しでセキュリティを向上させることができます。
さらには、行レベルのセキュリティやAlways Encryptedなど、SQL Server 2008と比較してセキュリティを向上させる機能が多く追加されています。SQL Server 2017の機能を使用して、よりセキュアなデータベースに移行することも可能であると言えます。
3.運用系機能の向上
SQL Server 2008以降、運用系の機能も色々と追加されています。例えば、インデックスの作成や再構築、削除がSQL Server 2012からオンラインで実行できるようになっています。今までは、サービスを停止してインデックスのメンテナンスをしていたというケースもあったと思いますが、SQL Server 2017にアップグレードすることでこのような運用を改善することができます。
また、SQL Server 2017からは再開可能なインデックスの再構築という機能も追加されました。これは、インデックスを再構築中に途中で停止することができる機能で、例えば予定時間内に再構築が終わらなかった、という場合でも再構築を一時停止して別日に再度実行する、ということが可能になります。どちらも運用者にとっては非常にありがたい機能と言えます。
また、SQL Server 2016で追加されたクエリストアという機能も運用者にとって非常に重宝する機能といえます。
あるバッチ処理が突然遅延した時に、運用者はどのクエリが何故遅延したのかを調査する必要があります。SQL Server 2008でこのような事象が発生した場合、どのSQL文が遅延したかをアプリケーションのログやDMVなどで調査し、そのSQL文に対して過去の実行プランと同じになるようにヒント句を作成し、アプリケーションを修正するというようなことが必要でした。
ただ、DMVに、その情報がメモリからキャッシュアウトされていたり、実行時の情報が更新されていたりして、「問題が発生した際の情報」「問題が発生する前の情報」を確認できないで苦労した方も多かったのではないでしょうか。SQL Server 2017では、クエリストアを使用することで、どのクエリが何故遅延したのか、遅延した時点とそうでない時は何が違うのかを比較しながら確認することができるようになっています。さらに、遅延したクエリに対して、アプリケーションの書き換え無しで遅延前の高速な時の実行プランで固定化することができるようになっています。