SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for the ‘SQL Server 2019’ tag

SQL Server 2019 CTP 3.1 で追加された OPTIMIZE_FOR_SEQUENTIAL_KEY の効果を確認してみる

leave a comment

SQL Server 2019 CTP 3.1 のデータベースエンジンの新機能として「OPTIMIZE_FOR_SEQUENTIAL_KEY」というインデックスのオプションが追加されました。

image

このオプションは、インデックスへの挿入を行う際に発生する Last page insert によるページラッチの競合を改善する効果のあるオプションとなっています。

詳細については、CREATE INDEX のヘルプの Sequential Keys に記載されています。

Read the rest of this entry »

Written by masayuki.ozawa

7月 1st, 2019 at 12:15 am

Posted in SQL Server

Tagged with ,

SQL Server 2019 CTP 3.1 のリリースノートが公開されました

leave a comment

投稿を書いている時点ではモジュールはまだ公開されていないようですが、SQL Server 2019 CTP 3.1 のリリースノートが公開されていました。

追記

公式アナウンスありました。
SQL Server 2019 community technology preview 3.1 is now availabl

データベースエンジンとしては、次のような機能が追加されているようです。

データベースエンジン

  • 暗号化列にインデックスを付与
  • セットアップ時に最大 / 最小メモリを設定可能
    • 従来までの SQL Server では、セットアップ後に最大 / 最小メモリを設定していましたが、今回からセットアップ時に設定ができるようになったようです。
      MAXDOP についても設定ができるようになったようです。
      • tempdb のように推奨オプションが指定される形で手動変更も可能という設定となったようですね。
    • Setting the memory options manually
  • グラフテーブルの最短パス用の関数の追加
  • グラフテーブルのパーティションテーブル / インデックスのサポート
    • グラフテーブルでパーティショニングが使用できるようになったようです。
  • 最終ページ挿入を改善するための新しいインデックスオプション
    • インデックスに OPTIMIZE_FOR_SEQUENTIAL_KEY オプションが新しく追加されました。
    • ID や現在の日付時刻が設定されている場合、複数スレッドによる最終ページのへの INSERT によって、PAGELATCH_EX の競合が発生することがあります。
      この競合を解消することができるオプションとして OPTIMIZE_FOR_SEQUENTIAL_KEY オプションが追加されたようです。
  • SQL Server on Linux の tempdb の自動的な分割
    • 2017 の SQL Server on Linux では、tempdb の自動的な分割は行われなかったのですが、2019 CTP 3.1 から分割されるようです。

Big Data Cluster

ビッグデータクラスター周りは例のごとく、かなり変更が加わっています。

  • mssqlctl コマンドの変更
    • 新しい CTP のリリースごとにコマンド体系が変わる mssqlctl ですが、今回も変わりました。
    • mssqlctl cluster → mssqlctl bdc に変更
      • クラスターのステータスを確認するためのコマンドとして mssqlctl bdc status が追加されているようです。
      • これに伴いまさかの管理ポータルの廃止が…。
        • Kibana / Grafana のダッシュボードは個別にエンドポイントがあるようなので、そこから状況は確認できるようですが。
  • Spark コンピューティングプール
    • 今までの Big Data Cluster は、ストレージプールの HDFS は Spark と相乗りだったのですが、Spark 部分を切り離して、個別にスケールできるようになったようです。
    • Configure storage without spark
  • MSSQL Spark コネクタ
    • データプールの外部テーブルに読み取りだけでなく、書き込みもできるようになったようです。
  • MLeap を使用した機械学習

Written by masayuki.ozawa

6月 26th, 2019 at 11:42 pm

Posted in SQL Server

Tagged with ,

メモリ最適化 tempdb メタデータについて (CTP 3.0 時点の動作)

leave a comment

SQL Server 2019 CTP 3.0 から、tempdb のメタデータをメモリ最適化テーブルを使用することができるようになりました。

Hekatonized Tempdb と呼んでいる方もいるようですね。

Read the rest of this entry »

Written by masayuki.ozawa

6月 19th, 2019 at 12:34 am

Posted in SQL Server

Tagged with ,

de:code 2019 の DP01 Big Data Cluster 入門の資料を公開しております

leave a comment

先日、登壇させていただいた de:code 2019 の SQL Server 2019 Big Data Cluster 入門の資料を Github で公開させていただきました。

https://github.com/MasayukiOzawa/decode-2019

こちらにスライドの PDF も公開してあります。

今回のデモは Azure Data Studio の Notebook を使用して実施しましたので、Github 上のデモ用コンテンツも実行済みの Notebook の形でアップロードしてあります。

どんなことができるか、どんな動作になるかはそのまま確認していただけるかと。

Written by masayuki.ozawa

6月 5th, 2019 at 10:32 pm

Posted in SQL Server

Tagged with ,

SQL Server 2019 CTP 3.0 がリリースされました

leave a comment

月次でリリースされている SQL Server 2019 の Preview の CTP 3.0 がリリースされました。
de:code の 1 週間前にリリースされたので、「俺のセッションに影響はないのか!?」と、ちょっと焦りましたがなんとかなりそうです。

アナウンスはこちら。

詳細についてはリリースノートや What’s New で確認できます。

ざっくりとした内容は次のようなものです。

Read the rest of this entry »

Written by masayuki.ozawa

5月 23rd, 2019 at 11:47 pm

Posted in SQL Server

Tagged with ,

SQL Server 2019 の PolyBase とリンクサーバーの違いについて

leave a comment

SQL Server 2019 では PolyBase の機能が進化し「データ仮想化」が一つのキーワードとなっています。

PolyBase は、SQL Server 2016 から実装された機能だったはずですが、SQL Server 2016 / 2017 では、Hadoop と Azure BLOB Storage の接続のみをサポートしており、オブジェクトストレージ上のデータに対してクエリを実行するための機能としての利用でした。

SQL Server 2019 になり、オブジェクトストレージの他に「ODBC 汎用コネクタ」がサポートされるようになり、アクセスできるデータソースが大幅に増加しました。

標準で、SQL Server / Oracle / Teradata / MongoDB へのアクセスもできるようになっているのですが、これらについては、「標準で導入されている ODBC ドライバー」となっており、実装については ODBC と同様です。

SQL Server 2019 のセミナーを毎月実施させていただいている中で「PolyBase とリンクサーバーの違い」について質問されることがあります。

これらの違いについては、次のドキュメントで解説が行われています。

Read the rest of this entry »

Written by masayuki.ozawa

5月 6th, 2019 at 7:40 pm

Posted in SQL Server

Tagged with ,

SQL Server 2019 CTP 2.5 と SSMS 18.0 GA が公開されました。

leave a comment

SQL Server 2019 CTP 2.5 と SSMS 18.0 が公開されました。
SSMS 18.0 は今回のタイミングで GA となり、正式版です。

Build 2019 で新しい CTP 出るのかなと思っていたのですが、4 月内に新しい Preview 出てきましたね。
Build では新しい発表あるのでしょうか??

公式のアナウンスとしては以下になります。

Read the rest of this entry »

Written by masayuki.ozawa

4月 25th, 2019 at 11:49 pm

Posted in SQL Server

Tagged with ,

SQL Server 2019 CTP 2.4 時代のクエリプロファイリング

leave a comment

SQL Server は製品のバージョンアップや更新プログラムによってクエリ情報を取得するための「クエリプロファイリング」の機能が向上しています。

クエリ プロファイリング インフラストラクチャ というドキュメントで、詳細はまとめられているのですが、自分の言葉で書く機会が少なかったのと、SQL Server 2019 CTP 2.4 でも取得できる情報が増えていますので、この機会にまとめておこうと思います。

Read the rest of this entry »

Written by masayuki.ozawa

4月 4th, 2019 at 10:45 pm

Posted in SQL Server

Tagged with ,

SQL Server 2019 CTP 2.4 の PolyBase をインストールする際の注意点

leave a comment

SQL Server 2019 CTP 2.4 の PolyBase (2019 の新機能版) をインストールしようとした際の注意点についてまとめておこうかと。

日本語版の Windows Server 2019 + SQL Server 2019 CTP 2.4 の環境を使用していますが、日本語固有 (英語以外) の問題も一部ありそうです。
環境に依存しているかの細かな確認はできていないのですがフィードバックはしておこうかと思います。

Read the rest of this entry »

Written by masayuki.ozawa

4月 1st, 2019 at 1:12 am

Posted in SQL Server

Tagged with ,

SQL Server 2019 CTP 2.4 がリリースされました

leave a comment

だいたい月次リリースで SQL Server 2019 の CTP がリリースされているのですが、2.4 がリリースされました。
まさか 3 月に 2 回 CTP がリリースされるとは…。

新機能の詳細はこちら。

データベースエンジン回りと、SSAS に機能向上が行われています。

データベースエンジン

Big Data Cluster

詳細は Release notes for big data clusters on SQL Server の CTP 2.4 の情報から。

  • Big Data Cluster の GPU サポート
    • Spark で TensorFlow を使用して深層学習を実行するための GPU サポートについてのガイダンスが公開されました。
      Deploy a big data cluster with GPU support and run TensorFlow
    • ガイダンスでは AKS を GPU インスタンスを使用して構築し、そのうえで Big Data Cluster の構築を行っています。
      • Big Data Cluster を使用する場合に設定するレポジトリが GPU 向けの設定となっているようです
  • 外部データソースの手動作成
    • CTP 2.3 までは、DataPool / Storage Pool の外部データソースが作成されていたのですが、CTP 2.4 から作成されなくなったため、手動で作成をする必要があります。
      External tables
    • model に事前に設定しておいてあげると、新規 DB 作成時に反映されて楽かもしれませんね。
  • Data Pool に対して INSERT INTO SELECT のサポート
    • CTP 2.3 までは、T-SQL を使用して Data Pool に対してデータを投入する際には、「sp_data_pool_table_insert_data」というストアドプロシージャを使用していたのですが、CTP 2.4 からは、ストアドプロシージャが廃止され、INSERT INTO SELECT により、Data Pool に対してデータ収集を行う方法となったようです。
      Tutorial: Ingest data into a SQL Server data pool with Transact-SQL
    • ある程度のまとまった行数を挿入する場合、複数の DB にレコードが分散されていました。
      (テスト時は、2700~3800 行ぐらいが分散単位となっていました)
  • Spark のバージョンが 2.4 にバージョンアップ
    • CTP 2.3 までは、Spark は 2.3.x が使用されていたのですが、2.4 が使用されるようになりました。
  • 外部テーブルに対して Compute Pool の利用の制御
    • 通常、外部テーブルへのアクセスについては、Master Instance から実行されます。
      これを Compute Pool 経由でアクセスするように実行するオプションが追加されました
      • OPTION(DISABLE SCALEOUTEXECUTION)
      • OPTION(FORCE SCALEOUTEXECUTION)

データベースエンジン

  • 文字列の切り捨てメッセージの動作の変更
  • クエリの実行プラン取得方法の機能向上
    • どちらも軽量クエリプロファイリングの使用時に、実際の実行計画に相当する情報を取得するための方法となり、軽量クエリプロファイリング v3 の一貫として追加されているようです。
      Lightweight query execution statistics profiling infrastructure v3
    • 拡張イベント : query_post_execution_plan_profile の追加
      • 軽量プロファイリングに基づいて取得された実行プランを、拡張イベントで収集するためには、このイベントを使用するようです。
    • DMV : sys.dm_exec_query_plan_stats の追加
      • 軽量プロファイリングに基づいて最後に実行された実際のクエリ実行プランを調べるための方法のようです。
        • 使用するためにはトレースフラグ 2451 が必要となります
  • 透過的データ暗号化 (TDE) の一時停止 / 再開のサポート

SSAS

  • 表形式モデルの多対多のリレーションシップのサポート (互換性レベル 1470 が必要)
  • メモリ設定のリソースガバナンス

Written by masayuki.ozawa

3月 28th, 2019 at 9:45 am

Posted in SQL Server

Tagged with ,