ブチザッキ / しばやん雑記 で今年の振り返りを投稿されていたので、金麦飲みながら SE の雑記でも書いてみようかと。
Read the rest of this entry »
Archive for 12月, 2017
2017 年の振り返り
SQL Server 2017 の on Linux における分散トランザクションのサポート状況について
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 »
最近の SQL Server で取得できるようになっているクエリ情報のメモ
SQL Server のバージョンが上がることで、クエリの情報で取得できるものも変化しており、問題解決に便利な情報が取得できるようになっています。
きちんと把握できていない項目等もあるため、一度まとめてみたいと思います。
Read the rest of this entry »
新しいコマンドラインツールの mssql-cli のクエリ実行方法のメモ
先日、新しいクロスプラットフォーム対応のコマンドラインツールである、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」配下の履歴ファイルに保存されていますので、クエリを後から確認もできます。
このツールは Python で実装されているのですが、どのようにして、SQL Server に対してクエリが実行されているのかが気になったのでちょっと調べてみました。
SQL Server に接続するアプリケーション開発のファーストステップのドキュメントとしては、Build an app using SQL Server がありますが、Python SQL ドライバー を使うのではなく、別のアプローチで接続しているんですね。
Read the rest of this entry »
SQL Server 2017 の自習書の ML Services 編が公開されています
先日、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 で実現可能なデータ解析を学ぶ際のファーストステップとして最適ですね。
この辺の情報、一から自分で学ぼうとすると情報追うのが大変だったりするのですが、自習書のクオリティで触れられていると大変ありがたいです。
SQL Server on Linux でメンテナンプラン相当の処理を実行する方法
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 »
SQL Server on Linux のメモリ周りの設定について
SQL Server on Linux では、Linux 特有の動作として OOM Killer があり、Windows 版とは異なるメモリ設定を意識しておく必要があります。
これについては、次のドキュメントで詳細に解説されています。
- How to safeguard SQL Server on Linux from OOM-Killer
- Performance best practices and configuration guidelines for SQL Server 2017 on Linux
本投稿では、これらのドキュメントの内容についてまとめてみたいと思います。
Read the rest of this entry »
SQL Server 2017 CU2 で、on Linux のメモリ制限が 2GB に緩和されています
SQL Server 2017 CU2 で、SQL Server on Linux のメモリ制限が 3.25 GB から 2GB に緩和されています。
FIX: Minimum memory limit set to 2GB to install or start SQL Server 2017
各ドキュメントも更新が行われています。
Updating memory requirement to 2GB for CU2
Windows / Mac の Docker で使う場合などは、デフォルトの 2GB から変更する必要がありますよという説明をしていたのですが、CU2 からは説明しなくても大丈夫そうですね。
SQL Server on Linux のプライマリへの昇格の制御について
昨日、SQL Server 2017 CU1 の Linux 版の可用性グループの拡張 を書きましたが、プライマリへの昇格の制御について、少し補足をしておきたいと思います。
実際にはこの辺りは、Pacemaker のリソースエージェント経由での制御となっているため、独自のクラスター管理の仕組みを作るのでない限りは、あまり意識する必要はないかと。
詳細については ペースに対する SQL Server エージェントのリソースを理解します。 に記載されています。
Read the rest of this entry »
SQL Server 2017 CU1 の Linux 版の可用性グループの拡張
ちょっとしたメモとして。
SQL Server on Linux でも可用性グループを構築することが可能ですが、RTM 直後の段階では、自動フェールオーバーが可能な状態で構築をするためには「SQL Server を 3 台で構成」する必要がありました。
詳細については、可用性グループの構成の高可用性とデータの保護 に記載されています。
Read the rest of this entry »