SE の雑記

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

SQL Server 2016 / 2017 の最新情報

leave a comment

■ドキュメント
– SQL Server 2016 –
SQL Server 2016
What’s New in SQL Server 2016
What’s New in Database Engine
SQL Server 2016 Release Notes 
SQL Server 2016 Service Pack 1release information
Features Supported by the Editions of SQL Server 2016

■モジュール
SQL Server Evaluations
Download SQL Server Management Studio
Download Latest SQL Server Data Tools
microsoft/mssql-server-windows
microsoft/mssql-server-linux

■動画
SQL Server Data Driven: Technical Deep Dive
Microsoft SQL Server 2016
Intelligent Apps & Data

Written by masayuki.ozawa

7月 26th, 2015 at 10:22 am

Posted in SQL Server

Tagged with ,

SQL Server on Linux の syslog を OMS に連携してみる

leave a comment

SQL Server on Linux の ERRORLOG に出力されるようなメッセージについては syslog にも出力されるようになっています。

Azure の OMS では、syslog を連携することもできるため、Linux に OMS エージェントをインストールすることで、syslog を連携することができます。

Log Analytics の Syslog データ ソース

実際に連携した際の画面が次の画像になります。

image

現状、facility が daemon、severity が info の情報として出力されるため、次のような設定を OMS で実施することで受け取ることができるようになるかと。
image

Written by masayuki.ozawa

1月 13th, 2018 at 12:11 pm

Posted in SQL Server

Tagged with ,

Linux 版の bcp と sqlcmd の日本語対応状況のメモ

leave a comment

SQL Server on Linux 向けのコマンドラインとして、Windows 版の SQL Server でも実装されている「bcp」「sqlcmd」は、Linux 向けもリリースされていますが、日本語の扱いが Windows 版と少し異なる点がありますので簡単にではありますがまとめてみました。

各コマンドの Linux 版の詳細については、次のドキュメントから確認することができます。

私が検証した限りでは、次の操作は気を付けておく必要があるかと。

  • char / varchar で CP932 固有の文字の「テキスト形式でのエクスポート」
  • 日本語名のテーブルの bcp を使用したエクスポート
  • char / varchar で CP932 固有の文字の「コンソールへの出力」
  • bcp のデフォルトの改行コードが LF となる

日本語を使用していても、nchar / nvarchar で UTF-16 を使用しているものについては問題なく実行することができており、char /varchar についても Native 形式のエクスポートであれば問題はありませんでした。

  • bcp を使用して char / varchar に CP932 固有の文字を使用していて、テキスト形式でデータをエクスポートする

というような運用が必要な場合、Linux 版のコマンドラインツールだと少し問題が出てくるかもしれませんね。

bcp のドキュメントに次のように記載されているので、CP932 の扱いが

このリリースでは、Latin-1 および UTF-16 文字がサポートされています。

Linux の SQL Server に対して、Windows 環境から bcp / sqlcmd を実行した場合は従来通りの動作となるかと。

Read the rest of this entry »

Written by masayuki.ozawa

1月 8th, 2018 at 9:21 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 ,

ADV180002 (CVE-2017-5753 / CVE-2017-5715 / CVE-2017-5754) についてのメモ

one comment

Meltdown と Spectre について (Reading privileged memory with a side-channel) のメモを、SQL Server を絡めながら。

Microsoft からの情報については、次の情報を起点とするとよいかと思います。

ADV180002 | Guidance to mitigate speculative execution side-channel vulnerabilities

SQL Server 観点でいうと、この中では「Microsoft SQL Server customers」で記載されている、SQL Server Guidance to protect against speculative execution side-channel vulnerabilities にまとめられています。

Read the rest of this entry »

Written by masayuki.ozawa

1月 6th, 2018 at 10:24 am

Posted in 未分類

2017 年の振り返り

leave a comment

ブチザッキ / しばやん雑記 で今年の振り返りを投稿されていたので、金麦飲みながら SE の雑記でも書いてみようかと。

Read the rest of this entry »

Written by masayuki.ozawa

12月 31st, 2017 at 9:42 pm

Posted in その他

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 で取得できるようになっているクエリ情報のメモ

leave a comment

SQL Server のバージョンが上がることで、クエリの情報で取得できるものも変化しており、問題解決に便利な情報が取得できるようになっています。

きちんと把握できていない項目等もあるため、一度まとめてみたいと思います。

Read the rest of this entry »

Written by masayuki.ozawa

12月 26th, 2017 at 11:53 pm

Posted in SQL Server

Tagged with

新しいコマンドラインツールの mssql-cli のクエリ実行方法のメモ

leave a comment

先日、新しいクロスプラットフォーム対応のコマンドラインツールである、mssql-cli というツールがリリースされました。

Try mssql-cli, a new interactive command line tool for SQL Server

今まで、コマンドラインで SQL Server に接続するためには、sqlcmd を使う機会が多かったと思います。
sqlcmd もクロスプラットフォーム対応されているのですが、このツール自体は、SQL Server 2005 から実装されたもので (それ以前は、osql / isql として実装)、バージョンによって改善はされているのですが、大きな変更はないツールだったのではないでしょうか。

mssql-cli は、モダンなコマンドラインツールとして開発が行われているもので、次の画像のように、コマンドラインでインテリセンスを使いながら入力をするということが可能です。 
クエリの実行履歴についても「~/.config/mssqlcli」配下の履歴ファイルに保存されていますので、クエリを後から確認もできます。

image

このツールは Python で実装されているのですが、どのようにして、SQL Server に対してクエリが実行されているのかが気になったのでちょっと調べてみました。

SQL Server に接続するアプリケーション開発のファーストステップのドキュメントとしては、Build an app using SQL Server がありますが、Python SQL ドライバー を使うのではなく、別のアプローチで接続しているんですね。

Read the rest of this entry »

Written by masayuki.ozawa

12月 24th, 2017 at 12:14 pm

Posted in SQL Server

Tagged with ,

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 ,