SE の雑記

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

Archive for the ‘SQL Server 2017’ tag

SQL Server 2017 on Linux で CU18 からレプリケーションがサポートされました

leave a comment

先日 SQL Server 2017 Cumulative Update 18 (CU : 累積修正プログラム) がリリースされました。

投稿を書いている時点では、アナウンスはあまり出ていなさそうではあるのですが、CU18 から SQL Server 2017 on Linux でもレプリケーションが使用可能となったようです。
(SQL Server 2019 on Linux では標準でサポートしています)

SQL Server 2019 on Linux と同様に、スナップショットレプリケーション / トランザクションレプリケーションが SQL Server 2017 on Linux でも CU18 を適用することで利用可能となります。
同様な、on Windows と on Linux の機能ギャップを解消するような改善については CU16 でも分散トランザクションサポートで実施されていました。

SQL Server 2014 以前のバージョンでは、SP や CU で機能自体が追加されるということはあまりなかった (SQL Server 2005 リリース時のデータベースミラーリングの正式サポートが割と例外的な形だったはずですが) のですが、SQL Server 2016 以降は、SP や CU に機能を向上させるための更新も入ってきています。
SQL Server 2017 については、サービスも出るが変更されており、SP はリリースされず、すべての更新は CU で実施されるというようになっていますので、CU の役割が従来とは変わってきているため、今回のレプリケーションサポートや分散トランザクション (MSDTC) のサポートが、CU 適用により追加されるということもあります。
CU の情報を確認する際には、Fix だけでなく、Improvement の情報にも注目すると、「次のバージョンで導入されている機能が下位バージョンでも使用できるようになる」にも気づくことができるのではないでしょうか。

Written by Masayuki.Ozawa

12月 12th, 2019 at 9:44 am

Posted in SQL Server

Tagged with ,

互換性レベル 130 以降をサポートしている環境のダウンレベルの互換性レベルと統計情報の更新について

leave a comment

SQL Server の統計情報の更新タイミングというと「データ量の 20% が更新された場合」に自動更新の対象となるというのが一般的に知られている内容ではないでしょうか。
これについては 統計 に記載されています。

SQL Server 2014 (12.x) まで、SQL Server は変更された行の割合に基づくしきい値を使用します。 これには、テーブル内の行数は考慮されません。 しきい値は次のようになります。

  • 統計情報が評価された時点でテーブルのカーディナリティが 500 以下の場合、500 回変更されるたびに更新されます。
  • 統計情報が評価された時点でテーブルのカーディナリティが 500 よりも大きい場合、500 プラス 20% の数の変更があるたびに更新されます。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 14th, 2019 at 8:52 pm

SQL Server on Linux の商用の可用性ソリューション HPE Serviceguard の情報が公開されています

leave a comment

SQL Server on Linux の高可用性ソリューションとしては Pacemaker がドキュメントに記載されているものとなりますが、OSS のため、ベンダーサポートが必要となる環境では利用が難しいケースがあるかもしれません。
(Pacemaker で使用する SQL Server 向けのエージェントについては mssql-server-ha でソースが公開されています)

パートナーから提供されている SQL Server on Linux のソリューションについては、SQL Server の高可用性とディザスター リカバリーのパートナー で公開されており、RHEL / SUSE で使用することができる HPE Serviceguard の各種情報が公開されていました。
Serviceguard は、共有ディスク型の AlwaysOn フェールオーバークラスター と AlwaysOn 可用性グループの両方に対応したソリューションとなっているようです。
実際の動作については、デモ動画が公開されています。

デモだけでなく、ドキュメントも公開されています。

ベンダーサポートが必要となった場合の可用性のソリューションとして覚えておくとよさそうですね。
パッと見た感じ、トライアルが見当たらなかったのですが、トライアルライセンスとかないですかね…。
あれば、どのような動作になるか検証して情報発信したいなと思ったのですが。

Written by Masayuki.Ozawa

3月 22nd, 2018 at 10:43 pm

クエリストアを利用した待ち事象の取得

leave a comment

SQL Server 2017 と SQL Database で利用可能な方法ですが、これらのバージョンでは、クエリストアの情報として、待ち事象の情報が追加されています。
待機クエリの検索
クエリストア自体が強力な機能なのですが、最新のバージョンでは、この情報に sys.query_store_wait_stats システムビューが追加されています。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 30th, 2018 at 10:57 pm

Posted in SQL Server

Tagged with ,

SQL Server on Linux の可用性グループで手動フェールオーバーを実施した際に必ず意識しておきたいこと

leave a comment

リリース当初からドキュメントがかなり更新されており、ビジネス継続性とデータベース復旧 – SQL Server on Linux からの一連のドキュメントを確認しておけばよいはずではありますが、個人的に引っかかったところを。
可用性グループでしか試していませんが、FCI (Failover Cluster Instance) の構成を手動フェールオーバーした場合も同様かと思います。
詳細については SQL Server on Linux の HA 可用性グループを操作します。SQL Server on Linux の HA 可用性グループを操作します。 を確認してください。
このドキュメント、CTP のリリース時点から大幅に情報が加筆されていますので、プレビューリリース当初に目を通しただけの方は、再度情報を確認した方がよいかと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 8th, 2018 at 7:32 pm

SQL Server 2017 CU3 で CXPACKET の待ち事象が CXPACKET と CXCONSUMER に分けられて取得できるようになります

leave a comment

SQL Server で、並列クエリの待ち事象を確認する際には「CXPACKET」「EXECSYNC」「EXCHANGE」を確認するのが一般的でしたが、SQL Server 2017 CU3 では、上記に加えて「CXCONSUMER」という待ち事象が増えています。
これにより、いままで CXPACKET として集計されていた一部の挙動が CXCONSUMER の方に集計されるようになります。
この動作自体は、PASS Summit 2017 で発表が行われ、Making parallelism waits actionable で解説されていたのですが、CU3 がリリースされたことで実際に検証が可能となりました。
今回の機能追加に伴い、sys.dm_os_wait_stats (Transact-SQL) のドキュメントも更新されています。

CXCONSUMER
行を送信する、producer スレッド consumer スレッドが待機したときに、並列クエリ プランで発生します。 これは、並列クエリの実行の通常の一部です。
適用されます: SQL Server 2017 CU3 と SQL データベース

CXPACKET
クエリ プロセッサ交換反復子を同期するときに、および生成および行を使用する場合は、並列クエリ プランで発生します。 待機時間が長すぎて、クエリのチューニング (インデックスの追加など) を実行しても短くできない場合は、並列処理のコストしきい値を調整したり並列処理の次数を下げたりすることを検討してください。
注:でSQL Server 2017CU3 および SQL データベース、クエリ プロセッサ交換反復子を同期するように、コンシューマーのスレッドの行を作成できるようにのみ CXPACKET を参照します。 コンシューマーのスレッドは、CXCONSUMER 待機の種類で個別に追跡されます。

 
検証する際は、次のドキュメントと合わせて確認すると理解しやすいかと。

手元の SCVMM 用の DB で並列クエリが実行されているものがあったので、これを使いながら軽く検証を。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 6th, 2018 at 3:45 pm

Posted in SQL Server

Tagged with ,

SQL Server 2017 の on Linux における分散トランザクションのサポート状況について

leave a comment

Linux 上の SQL Server 2017 のリリース ノート に次のような記載があります。

Distributed transactions requiring the Microsoft Distributed Transaction Coordinator service are not supported on SQL Server running on Linux. SQL Server to SQL Server linked servers are supported unless they involve the DTC. For more information, see Distributed transactions requiring the Microsoft Distributed Transaction Coordinator service are not supported on SQL Server running on Linux.

2017/12 末時点の SQL Server 2017 on Linux では、DTC がサポートされておらず、ローカルトランザクションによるトランザクションについては、サポートされていますが、DTC を使用したトランザクションについてはサポートされていません。
(ローカルトランザクションはサポートされているので、同一サーバー内の複数の DB に対してのトランザクションはサポートされています)
これについては、AlwaysOn 可用性グループの DTC サポート (DTC_SUPPORT = PER_DB) についても含まれているようで、Linux 版については、可用性グループの分散トランザクションサポート についても該当することになるかと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

12月 28th, 2017 at 5:12 pm

SQL Server 2017 の自習書の ML Services 編が公開されています

leave a comment

先日、SQL Server 2017 の自習書シリーズが公開されています で投稿しましたが、この時にはまだ公開されていなかった 第 3 弾になる ML Services の自習書である 「SQL Server 2017 自習書シリーズ No.3 SQL Server 2017 Machine Learning Servicesの概要」が公開されています。

https://www.microsoft.com/ja-jp/cloud-platform/documents-search で公開されている自習書にアクセスできるかと。
機械学習のアルゴリズムについても触れられていますので、SQL Server に限らず、機械学習について学ぶ際にもとても参考になるかと思います。
ML Servcies の sp_execute_external_script だけでなく、PREDICT 関数を使用した SQL Server on Linux での学習済みモデルの利用にも触れられていますので、SQL Server 2017 の機械学習の仕組みを網羅的に学ぶことができるコンテンツですので、最新の SQL Server で実現可能なデータ解析を学ぶ際のファーストステップとして最適ですね。
この辺の情報、一から自分で学ぼうとすると情報追うのが大変だったりするのですが、自習書のクオリティで触れられていると大変ありがたいです。

Written by Masayuki.Ozawa

12月 12th, 2017 at 5:25 pm

Posted in SQL Server

Tagged with ,

SQL Server on Linux でメンテナンプラン相当の処理を実行する方法

leave a comment

SQL Server on Linux の非サポート機能として SQL Server Management Studio (SSMS) に「メンテナンスプラン」が記載されています。
SQL Server on Linux の SSIS では、一部の機能がサポートされていないのですが、メンテナンスプランのベースとなっている、制御フローのコンポーネントについてはサポート対象となっています。
サポートされており、サポートされていないコンポーネント
抽出、変換、および SSIS Linux でのデータを読み込む
SQL Server Integration Services ( SSIS ) on Linux とは
Read the rest of this entry »

Written by Masayuki.Ozawa

12月 10th, 2017 at 1:06 pm

SQL Server on Linux のメモリ周りの設定について

leave a comment

SQL Server on Linux では、Linux 特有の動作として OOM Killer があり、Windows 版とは異なるメモリ設定を意識しておく必要があります。
これについては、次のドキュメントで詳細に解説されています。

本投稿では、これらのドキュメントの内容についてまとめてみたいと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

12月 9th, 2017 at 12:05 pm