SQL Server 2017新機能紹介はクロスプラットフォーム対応を中心に
最初の講義「SQL Server 2017 新機能概要」では、10月2日にリリースしたSQL Serverの最新バージョン2017の新機能が、ポイントを押さえて解説された。従来バージョンから変わったところも大変わかりやすかった。
SQL Server 2017の特徴を、マイクロソフトでは「INTELLIGENT」「TRUSTED」「FLEXIBLE」という3点に要約しているが、これら3点の中で、この講義で小澤氏が取り上げたのは「FLEXIBLE」。つまり、クロスプラットフォームサポートである。
「SQL ServerというとWindowsというイメージがあるが、最新バージョンではLinuxやDockerコンテナー上でも利用可能になった」と小澤氏。SQL Server on Linuxの紹介では、名前付きインスタンス機能やWindows認証機能など、Linux版ではサポートされていないが知っておくことが重要と思われる項目を解説した。
また、管理ツール「SQL Server Management Studio」(以下、SSMS)から「sp_configure」を呼び出す以外にも、Linux版では「mssql-conf」ツールを使用して各種設定ができることを紹介。そのほか、Linux版における高可用性環境の構築とその例、「可用性グループを使用して、異なるOS間でデータを同期できる」といったことも述べた。
開発ツール「Visual Studio Code」もクロスプラットフォーム対応であるが、このツールはSQL Serverの利用においても役立つ。Visual Studio CodeをLinuxにインストールすれば、sqlcmd/bcpを使用することでコマンドラインからもSQL Serverに接続可能になる。さらに、Visual Studio CodeではSQL Server 2017で実行可能になったPythonを含むSQLの、Python部分を開発することもできる。
そのほか、「Microsoft SQL Operations Studio」というSQLの実行や実行プランの表示が可能なクロスプラットフォーム対応の新しいGUIツールや、今後提供が予定されている「mssql-cli」という新しいコマンドラインツールも紹介された。
「SQL Server on Linuxは、SQL Serverのすべての機能をサポートしていないとはいえ、Windows版と遜色のないほどにデータベースの主要機能をサポートしており、クロスプラットフォームに対応したツールも充実している」と小澤氏。本日はこのことだけでも覚えて帰ってほしいと、特にアピールしていた。
SQL Server 2017で強化された基本機能についてもポイント解説。例えば、SQL Server 2016ではクエリストアが追加されたことで、時系列でクエリの実行状態を取得できるようになったが、「SQL Server 2017では、実行タイミングの処理対象に適合した形で、クエリの実行プランを動的に最適化されるよう改善された」(小澤氏)として、「Batch Mode Memory Grant Feedback(バッチモードメモリ許可フィードバッグ)」「Batch Mode Adaptive Joins(バッチモード適応型結合)」「Interleave Execution(インターリーブ実行)」を紹介。さらに実行プランが変化し実行効率が低下した場合に、過去に実行されたプランから効率のよい実行プランを使用する補正を自動的に行う「自動チューニング」、インデックスの再構築を中断/再開することができる「再開可能なインデックスのオンライン再構築」といった、運用の利便性を向上させる機能などに触れた。