月次でリリースされている SQL Server 2019 の Preview の CTP 3.0 がリリースされました。
de:code の 1 週間前にリリースされたので、「俺のセッションに影響はないのか!?」と、ちょっと焦りましたがなんとかなりそうです。
アナウンスはこちら。
- SQL Server 2019 community technology preview 3.0 is now available
- What’s new for SQL Server 2019 Analysis Services CTP 3.0
詳細についてはリリースノートや What’s New で確認できます。
ざっくりとした内容は次のようなものです。
Big Data Cluster
- mssqlctl のパラメーターが結構変わっています。
- mssqlctl は CTP 3.0 ようのものがリリースされていますので、CTP 3.0 を使用する場合は、ツール自体の更新が必要です。
- クラスターで使用する DB のストレージが「データファイル」「ログファイル」が分かれるようになりました。
デプロイ時の JSON で次のように指定できるようになっています。 - Compute Pool のノードが複数台構成をサポートするようになりました。
- 私が試していた範囲では CTP 2.5 の段階ですでに複数台サポートになっていたようなのですが、公式のアナウンスとしては CTP 3.0 からのようです。
- デプロイで使用している JSON のノード数の指定を変更すると複数台になります。
- Data Pool に外部テーブルを作成する際に「ROUND_ROBIN」以外に、「REPLICATED」の分散方法を指定できるようになりました。
SQL DW の分散方式に徐々に近づきつつありますね。 - 外部テーブルの取り扱える行の最大サイズが改善されているようです。
- そのほかにも Pod 名の変更や、Storage Pool の外部データソースを作成する際のエンドポイント名の変更などがありますので、一度チュートリアルを確認し、ドキュメントの更新日付が変わっているものはチェックしておいた方が良いかと。
Database Engine
- ML Service の Java 拡張機能が少し変更されています。
- CTP 2.5 で SDK をロードする方式に変更されていたのですが、CTP 3.0 からは、R / Python 以外は SQL Server Language Extension として、明示的に External Language として組み込む必要が出てきたようで、Java もこれに該当するようになりました。
- ML Service で使われているような外部言語の実行は、Extensibility Framework として実装されており、利用者がこの部分に言語を組み込めるようになったようです。
リリースノートには、次のような記載がありますので、DB 管理者が任意の言語を追加できるようです。 - Database administrators can register new external language extensions on any OS platform supported by SQL Server. This enables developers to create language extensions for additional languages such as dotnet core, Go, and more.
- ML Service の Java の対応する SQL server のデータ型も拡張されているようです
- クエリストアにカスタムのキャプチャポリシーが追加されています
- query_capture_policy_option_list として、実行数 / コンパイルの CPU 時間 / 実行の CPU 時間 / クエリ取得の評価期間といったものが追加されているようです
- ハイブリッドバッファープールの有効化方法の変更
- ハイブリッドバッファプールの有効化がトレースフラグではなく、サーバーレベルまたは、DB レベルのオプションでの設定となりました。
ワークロードの違いに応じて DB レベルで設定を変更できる感じでしょうかね。
PMEM 対応は興味を持っている部分なのでいつか試したいですね~。 - In-Memory Database というドキュメントも新しく公開されました。
- tempdb のメタデータを In-Memory 化できるようになりました。
- 従来までの SQL Server では、TF1118 やデータファイルを分割することでシステムアロケーションページの競合を防ぐというようなアプローチが行われていました。
しかし、頻繁に一時テーブル等を作成しているような環境では、一時テーブルを作成した際のメタデータの登録のために、同時実行性が低下するということが考えられました。 - これに対してのアプローチとして、tempdb のメタデータのテーブルをメモリ最適化テーブルとして管理し、ラッチフリーの環境にするアプローチが実装されました
(PASS Summit で発表されていた内容が CTP 3.0 で実装されました) - リンクサーバーで UTF-8 の照合順序をサポートしたようです。
- sys.dm_exec_query_plan_stats の情報拡張
- TF2451 を有効にすることで取得できる DMF の情報が拡張されているようです。
並列度やメモリに関しての詳細情報が取得できるみたいですね。
Master Data Service
- MDS で、Managed Instance の利用がサポートされるようになったようです。
SQL Server Analysis Services
- MDX クエリで計算グループを含む表モデルをサポートするようになったようです。
- 計算グループを使用して、数値データの動的フォーマットができるようです。
- SSAS はあまり触っていないので冒頭で紹介した SSAS チームのブログを参照してください…。