SE の雑記

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

Archive for the ‘SQL Server’ Category

SQL Server 2016 SP2 がリリースされています

leave a comment

最近、SQL Server 2017 の情報しかキャッチアップできていなかったのですが、SQL Server 2016 SP2 がリリースされています。

SQL Server 2016 は SP1 で 大幅な機能更新 が行われました。
それにはかなわないですが、SQL Server 2016 SP2 でもかなりの機能更新が含まれています。
日本語の情報については、SQL Server 2016 リリース ノート から確認するとよいかと。
以下の内容は上記のリリースノートの内容と同じですが、自分で理解するためにまとめたものです。
Read the rest of this entry »

Written by Masayuki.Ozawa

5月 26th, 2018 at 4:32 pm

de:code 2018 の登壇資料とデモコンテンツを公開しています

leave a comment

先日開催された de:code 2018 で SQL Server on Linux のセッションを担当させていただきました。

後日、公式サイトからセッション動画とスライドが公開されると思いますが、先行して GitHub 上でコンテンツを公開しておりますので、ご興味のある方がいらっしゃいましたらご利用ください。
当日使用したバージョンのスライドの Slideshare へのリンクも、ReadMe に記載しております。
https://github.com/MasayukiOzawa/decode-2018-demo

Written by Masayuki.Ozawa

5月 25th, 2018 at 7:40 am

Build 2018 の SQL Server / SQL Database の関連セッション

one comment

Build 2018 も終わり、コンテンツが公開されていますのでメモとして。
今年は、キーノートで SQL Server 関連の内容は少なく、新情報はあまりない雰囲気ではありますが。
今年のコンテンツは、Channel 9YouTube で公開されているようですね。
(Channel 9 の動画が YouTube のリンクになっているようです)
Read the rest of this entry »

Written by Masayuki.Ozawa

5月 13th, 2018 at 2:20 pm

SQL Database Managed Instance と SQL Server / SQL Database の比較

leave a comment

本投稿は 2018/4 時点の Public Preview の内容です。
一般提供開始時には変更されている可能性があります。

SQL Database Managed Instance と Azure の SQL Server ベースのサービスを比較してみた際にまとめたものを投稿しておきたいと思います。
機能差異については、次のドキュメントから追うことになるかと。

比較結果は、利用者によっていろいろな観点があるかと思いますので、今回の比較はあくまでも「私個人が調べた結果での比較」となっていますのでご了承ください。
(MI はプレビューのサービスですので、この投稿に書いてある内容も、時期によっては古いですのでご承知おきください)
Read the rest of this entry »

Written by Masayuki.Ozawa

4月 22nd, 2018 at 6:37 pm

PowerShell Core 6.0 に一部対応した SqlServer モジュールの提供が開始されました

leave a comment

クロスプラットフォームに対応した PowerShell である、PowerShell Core 6.0 に一部対応した SQL Server 用のモジュール (SqlServer) の提供が開始されました。
SQL Server 向けの PowerShell については、SSMS 17.0 以降は、PowerShell ギャラリーからインストールを行う方法に代わっています。
SQL Server PowerShell モジュールのインストール
最新版の SQL Server PowerShell モジュールである version 21.0.17240 から、PowerShell 6 Support が含まれるようになりました。
Read the rest of this entry »

Written by Masayuki.Ozawa

4月 15th, 2018 at 10:14 pm

Posted in SQL Server

Tagged with ,

sys.dm_os_performance_counters でパフォーマンスモニターの情報を取得する際のポイント

leave a comment

何年も前に書いた sys.dm_os_performance_counters の情報取得時の注意点 の補足になります。
なぜ、このタイミングで改めて書いたかというと、sys.dm_os_performance_counters は、SQL Server on Linux で SQL Server のパフォーマンスを確認する際に重要な DMV となるからです。
SQL Database で情報を確認する場合にもこの DMV は重要となりますので、値の成型方法は覚えておいて損はないかと。

詳細については、次の情報も併せて確認してください。

取得用のクエリについては sys.dm_os_performance_counters の加工.sql で、私が作ったものを公開していますので、ご参考になれば。

上述の DMV から取得した情報ですが、cntr_type に応じて、次の 3 種類の利用方法があります。

  • 値をそのまま利用
    • cntr_type = 65792
  • 2 点で情報を取得し、その差分の値を取得間隔で除算する
    • cntr_type = 272696320 / 272696576
  • 2 種類の項目を使用して、その値を除算することパーセントを算出する
    • cntr_type = 537003264 / 1073874176

cntr_type に応じた、値の利用方法は次のようになります。

cntr_type 16進値 カウンターのタイプ
65792 0x00010100 PERF_COUNTER_LARGE_RAWCOUNT 瞬間的な値を示す 64 ビット値
(
値をそのまま利用可能)
272696320 0x10410400 PERF_COUNTER_COUNTER 1 秒あたりのイベント発生率を示す 32 ビット値

後続の値との差を取り、2つの値のタイムスタンプの秒数で除算する(A2 – A1) / (A2 Timstamp – A1 Timestamp)

272696576 0x10410500 PERF_COUNTER_BULK_COUNT 1 秒あたりのイベント発生率を示す 64 ビット値

後続の値との差を取り、2つの値のタイムスタンプの秒数で除算する(A2 – A1) / (A2 Timstamp – A1 Timestamp)

537003264 0x20020500 PERF_LARGE_RAW_FRACTION 比率をパーセントで表すことができる 64 ビット値Base Counter の値で除算することで、比率を算出できるRAW_FRACTION / RAW_BASE * 100
1073939712 0x40030500 PERF_LARGE_RAW_BASE PERF_LARGE_RAW_FRACTION との計算で使用される 64 ビット値
1073874176 0x40020500 PERF_AVERAGE_BULK 平均メトリックを示すために使用される 64 </
span>ビット値
後続の値との差を取り、後続の Base Counter の差で除算する(A2 – A1) / (A2 Base – A1 Base)

cntr_type = 65792 については、取得した値がそのまま利用可能で、大体の項目についてはこれに該当しているかと。
代表的なものとしては、Memory Manager の項目などがあります。

この項目の場合「SQL Server のメモリ使用量」を示すものとなり、取得した値を利用そのまま利用することが可能です。
(Pages となっている項目が存在することもありますが、その場合は、値に 8KB をかけることでサイズに変換できます)

cntr_type = 272696320 / 272696576 については、2 点で情報を取得し、その差分を取得間隔で除算することで利用することが可能です。
代表的なものとしては、SQL Statistics の項目などがあります。

この項目の例としては、「Batch Requests/sec」がよく使用するものとなるかと。

この項目は、秒間の SQL のバッチ実行数を表すものであり、SQL Server のインスタンスに対して、どの程度クエリが実行されているかを把握するために使用するものになるのですが、この項目を DMV から取得する場合には、瞬間の値だけをとればよいのではなく、必ず 2 点で取得する必要があります。
2 点で取得した結果が A1 (1 回目の取得) : 50 / A2 (2 回目の取得) : 100 で A1 / A2 の取得間隔が 10 秒だった場合、「(100 – 50) / 10 = 5 Batch Request / sec」となります。

cntr_type = 537003264 / 1073874176 については、2 つの項目をペアとして使用して、その値で除算することで利用することが可能です。
代表的なものとしては、Buffer Manager の項目などがあります。

この項目の例としては「Buffer cache hit ratio」がよく使用するものになるかと。
この項目は、バッファーキャッシュのヒット状況を表すものになるのですが、この項目単体では利用することはできず、ペアとなる値と組み合わせて使用する必要があります。

「Buffer cache hit ratio」の場合、「Buffer cache hit ratio base」がペアとなる値となります。
Buffer cache hit ratio の場合「Buffer cache hit ratio / Buffer cache hit ratio base * 100」というような計算を行うことで、キャッシュヒット率 (%) を算出することができます。

これらの加工方法を知っておくと、様々なモニタリングの仕組みで有効に活用できるかと。

SQL Server on Linux の場合、パフォーマンスモニターを使用した、パフォーマンス情報の取得ができませんので、SQL ベースで情報の取得ができるようになっていると、問題解決の即応性にもつながりますので。

モニタリングのソフトでは、「SQL を実行できるプラグイン」が含まれていることが多く、このようなデータ加工方法を知っておくと性能情報の取得にも役に立てることができるのではないでしょうか。
(時系列 DB だと、一つ前のデータとの差分抽出も簡単にできるものが多いですので、2 点間の差分も容易に出せます)

SQL Database でもこの方法は使用することができますので、「SQL Database の性能情報は DTU だけだとブラックボックス」と思っている方は、DMV から情報をブレークダウンすることに挑戦してみてはいかがでしょう。リソースの使用状況について、かなりの情報を取得することが可能です。

Written by Masayuki.Ozawa

4月 1st, 2018 at 11:35 pm

Posted in SQL Server

Tagged with

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

Azure Backup で SQL Server がインストールされている仮想マシンをバックアップする際に意識しておきたいこと

leave a comment

Azure における VM バックアップ インフラストラクチャの計画を立てる に書かれている内容となりますが備忘録として。

Azure Backup で Azure 上の仮想マシンのバックアップを取得した場合、VSS と連動して取得が行われます。

Windows VM のスナップショットを取るとき、Backup サービスは Volume Shadow Copy Service (VSS) と連携して仮想マシンのディスクの一貫したスナップショットを取得します。

Windows に SQL Server をインストールすると「SQL Server VSS Writer」がインストールされ、この Writer が VSS と連動して、SQL Server としてのアプリケーション整合性を保持しながらバックアップの取得を行うことができるようになります。
ここで 1 点、注意しておきたいのが、

Azure Backup は、Windows VM 上で VSS 完全バックアップを行います ( VSS 完全バックアップの詳細をご覧ください)。

の記載です。
Read the rest of this entry »

Written by Masayuki.Ozawa

3月 17th, 2018 at 9:45 am

Log Analytics の HTTP データ コレクター API を使用した SQL Database の情報収集

one comment

SQL Database の Intelligent Insights を使用することで、Log Analytics に情報を収集することができますが、Log Analytics には、HTTP データコレクター API があり、カスタムデータをアップロードすることもできるようになっています。
詳細については、 HTTP データ コレクター API を使用した Log Analytics へのデータの送信 (パブリック プレビュー) に記載されていますが、この仕組みを使用して、SQL Database の任意の性能情報を Log Analytics に格納する仕組みを作ってみました。
性能情報については、SQL Database に対してクエリを実行して取得しているだけですので、SQL Server からも情報を取得可能です。
Read the rest of this entry »

Written by Masayuki.Ozawa

2月 25th, 2018 at 10:51 pm

SSMS 17.5 がリリースされいくつかの機能が追加されています

leave a comment

先日、SQL Server Management Studio 17.5 がリリースされました。
Download SQL Server Management Studio (SSMS)
私が使いそうなもので、追加された機能としては、

  • SQL Data Warehouse の EXPLAIN のグラフィカルな取得
  • SQL Server 向けの「データ検出と分類」の機能追加

の 2 点でしょうか。
詳細については New in this Release に記載されていますのでそちらを参照してください。
Read the rest of this entry »

Written by Masayuki.Ozawa

2月 17th, 2018 at 1:01 pm

Posted in SQL Server

Tagged with