SE の雑記

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

SQL Server / SQL Database アーキテクチャ ドキュメント

leave a comment

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 13th, 2020 at 11:36 pm

Posted in SQL Server

Tagged with

SQL Server エンジニアが学ぶ OSS DB (MySQL / PostgreSQL) の情報取得

leave a comment

普段は SQL Server を使用しているのですが、OSS の DB についても学習をする必要が出てきました。
私の場合、SQL Server を使用する際には開発ではなく管理側となり「SQL Server の各種情報を取得し分析する」ことが多いです。

その中で「OSS DB では通常、SQL Server で確認しているこの情報はどのように取得するのか?」という調査をすることになるのですが、「取り掛かりとしてどこを見ればよいのか」の勘所がわからなくて四苦八苦しています。

そこで、基本的なメトリクスを取得するためにはどのような情報を取得すればよいのかを少し調べてみました。

さらに踏み込んで情報取得について検討を行う必要があるとは思いますが、私が情報を確認しようとした場合には、これらの情報を足掛かりすると対応ができそうな感じでした。

Read the rest of this entry »

Written by Masayuki.Ozawa

5月 12th, 2021 at 1:41 pm

Windows Server 2016 以降で利用できるようになった DNN の情報について

leave a comment

Windows Server 2016 以降の環境では、DNN (Distributed Network Name : 分散ネットワークネーム) というクラスターリソースが追加されました。

この DNN のクラスターリソースは、SQL Server 2019 で SQL Server on Azure VM の高可用性環境を構築する場合にも活用をすることができるようになっています。

Windows Server 2019 の Azure VM で WSFC を構築した場合、CNO (Cluster Name Object) が従来の VNN (Virtual Network Name : VNN) ではなく、DNN で自動的に作成が行われたりもしますが、DNN についてきちんと情報を調べたことが無かったので、本投稿で情報をまとめておきたいと思います。

本ブログでも DNN を使用した SQL Server on Azure VM の高可用性環境には触れてきましたが、きちんと情報を調べるまで、雰囲気でしか理解できていませんでした…。

Read the rest of this entry »

Written by Masayuki.Ozawa

5月 10th, 2021 at 8:40 pm

2021/4 の SQL Server / SQL Database 関連の更新情報

leave a comment

2021/4 の関連情報です。
5 月に Build 2021 がありますので、来月はボリュームが多いかもしれませんね。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 29th, 2021 at 8:56 pm

PowerShell の Foreach-Object の Parallel パラメーターの情報

leave a comment

PowerShell は 7.0 以降で、Foreach-Object で Parallel パラメーターが使用できるようになりました。

従来までは、複数スレッドで処理をする場合は、Windows PowerShell ワークフロー / ジョブ / Runspace などを使用するケースがありました。(Windows PowerShell ワークフローは 5.1 までしか使用できないので、現時点で利用することはほとんどない気もしますが)

PowerShell 7.0 以降では、Foreach-Object の Parallel パラメーターを使用することで複数スレッドの処理をシンプルに記述することができるようになっています。

$SampleText = "PowerShell Foreach-Object Parallel"
Clear-Host
Measure-Command {
    1..50 | Foreach-Object {
        $text = $SampleText
        Write-Host ("{0} : {1}" -f $text, $_)
    }
}

Measure-Command {
    1..50 | Foreach-Object -ThrottleLimit 5 -Parallel {
        $text = $using:SampleText
        Write-Host ("{0} : {1}" -f $text, $_)
    }
}

 

PowerShell ForEach-Object Parallel Feature には次のように記載されています。

However, there is still quite a bit of overhead to run script blocks in parallel. Script blocks run in a context called a PowerShell runspace.

シンプルな処理では、スクリプトブロックを並行で実行する際のオーバーヘッドにより、Parallel を使用しない方が処理が短時間で実行されるケースもありますので、どのような処理を並行で実行するかについては注意しておく必要がありますが、1 回の実行に数秒かかる処理などは並行実行すると効果があるのではないでしょうか。

Azure Functions の PowerShell ランタイムも PowerShell のバージョンが 7.0 になっていますので、Azure 上で関数を実行する場合にも効果的に動作するケースがあるかと思います。(Azure Automation については How can we improve Azure Automation service? に記載されていますが、CY21 Q4 に、PowerSHell 7.0 をサポート予定のようです)

Foreach-Object で Parallel パラメーターを使用したした際の情報ですが、冒頭に記載したリリース時の情報だけでなく、docs のドキュメントでいくつかの情報が公開されていますので、どのような情報があるかをまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 20th, 2021 at 10:48 am

Posted in PowerShell

Tagged with

Database Migration Assistant (DMA) で SQL Server から SQL Database へのデータ移行方法について

leave a comment

SQL Server から SQL Server ベースの環境へのマイグレーションに使用することができるツールとして、Database Migration Assistant (DMA) という無償のツールが提供されています。

このツールでは、SQL Server から SQL Database へのスキーマ移行 / データ移行をサポートしており、SQL Server の環境を SQL Database に移行する際に利用することができます。

このツールの中で、SQL Database にデータを移行する際には、どのような方法を使用しているのかが理解できると、SQL Server ベースの環境の移行に活用できるのではと思い、データ移行方法を調べてみました。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 19th, 2021 at 9:21 pm

Posted in SQL Database

Tagged with

SQL Server / SQL Database における同値で UPDATE をした場合の挙動について

leave a comment

SQL Server / SQL Database で UPDATE を実行する際に、現在の値と同じ値で更新 (SET 句に指定した変更内容が現在の値と同じ) をした場合の挙動について触れておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 15th, 2021 at 9:48 pm

SQL Database で sys.fn_xe_telemetry_blob_target_read_file を使用して標準取得されているテレメトリ情報を確認する

leave a comment

SQL Database のテレメトリ情報を取得する方法としては、次の DMV / システムビューを検索するという方法があります。

SQL Database で発生している「イベント」を取得する方法としては、sys.event_log を参照するという方法があるのですが、このシステムビューは、検索に時間がかかる、かつ、v11 での利用を想定しており、現在の v12 の環境では有益な情報を取得できないケースがあります。

v12 の環境で、「発生しているイベント」を取得する方法として、sys.event_log / 拡張イベントを使用しなくても標準で取得されているテレメトリからイベントを取得するという方法がありますので、本投稿ではその方法についてみていきたいと思います。

現状、初期状態で「デッドロック」の情報を取得するためには、本投稿の内容を使用することになるかと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 15th, 2021 at 9:38 am

Posted in SQL Database

Tagged with

Share via
Copy link
Powered by Social Snap