Build 2021 の SQL Server ベースの環境の発表については、Build 2021 のタイミングで発表された SQL Server / SQL Database のアップデート に Synapse も含めて書いてみましたが、Synapse 単体でもいくつかのドキュメントの更新が行われていますので、Synapse Analytics のみで、一度アップデートの内容を把握しておきたいと思います。
Archive for 5月, 2021
SQL Database に追加された Ledger を学習する – 概要 –
Build 2021 で SQL Database の新機能として Ledger (台帳) がプレビュー機能として発表されました。
Ledger の初出は PASS Summit 2020 の Day2 Keynote になるのではと思いますが、実機でこの機能を検証することができるようになりましたので、試してみたいと思います。
公式ドキュメントは次の内容となるかと。
- Azure SQL Database ledger documentation
- Quickstart: Create an Azure SQL Database with ledger enabled
最終的にはすべての地域でプレビュー機能が利用できるようですが、投稿を書いている時点では「米国中西部」の論理サーバーでのみ利用することが可能です。(SLO は Basic でも使用できたので、従量課金で検証する場合も、基本機能検証であればコストは抑えられると思います)
そのため、Ledger データベース / CREATE TABLE の LEDGER=ON を実行するためには、米国中西部の論理サーバーに作成したデータベースで検証を行う必要があります。
学習の最初のステップとして Azure SQL Database ledger の内容を見ながら、Ledger がどのようなものなのかを学習したいと思います。
Ledger 全体の構成はこのようになります。
Build 2021 のタイミングで発表された SQL Server / SQL Database のアップデート
Build 2021 のタイミングに合わせて発表された内容を。
クエリストアの「CPU 時間 (ミリ秒)」の「合計」の算出方法について
SQL Server / SQL Database のクエリ情報を確認する際に活用できる クエリストア では、様々な情報を確認することができ、その項目の一つとして「CPU 時間 (ミリ秒) の合計」があります。
この項目は、SSMS から GUI でクエリストアの情報を確認するときに利用することができます。
本投稿では、SSMS からクエリストアの情報を確認する際に利用できる「合計」について触れたいと思います。
本投稿では、CPU 時間についてフォーカスしていますが、他の合計も基本的な考え方は同一です。
Database Migration Assistant (DMA) で使用されているルールの抽出
SQL Server から SQL Server ベースの環境に移行 (マイグレーション / バージョンアップ) を実施する場合のアセスメントとデータ移行を実施するためのツールとして、Database Migration Assistant (DMA) というツールが提供されています。
このツールを使用すると SQL Server のバージョンアップや Azure SQL Database への移行を行う際のアセスメント / マイグレーションを実施することができます。
DMA では、サポートされているソース バージョンとターゲット バージョン に記載されているソースとターゲットをサポートしており、これらの組み合わせの SQL Server ベースの環境をサポートしています。
SQL Database へのデータ移行時の方法については、本ブログでも Database Migration Assistant (DMA) で SQL Server から SQL Database へのデータ移行方法について で触れたこともありますね。
DMA のアセスメントで、移行のブロッカーとなる要素が検知されると、アセスメントの結果として次のように表示が行われます。
「どのような検索を行い、問題として検知しているか」については、抽出することはできないのですが、「どのようなルールが存在しているか」については、DMA のインストールディレクトリ内のファイルから、一部情報を確認することができます。
本投稿では、ファイルから SQL Database に移行する際のアセスメントで検知されるルールについて確認をしてみたいと思います。
使用しているスクリプトや出力結果については、こちら で公開していますので必要に応じて参考にしていただければと思います。
Windows Server 2019 Hyper-V 上に Windows Server 2012 の検証環境を作成する際のメモ
検証用に Windows Server 2019 の Hyper-V 上に Windows Server 2012 の仮想マシンを構築しようとして小出しにはまったのでメモを。
Windows Server 2012 については、投稿を書いている時点では 評価版 が提供されていますので、 Evaluation Edition で検証可能です。
PowerShell で Microsoft.Data.SqlClient のイベントトレースを取得する
System.Data.SqlClient のイベントトレースについては BID (Built-In Diagnostics) トレースで実装されていたため、BID トレースの設定を有効化する必要があったかと思います。
BID トレースについては次のドキュメントで解説が行われています。
- HowTo: BID トレース – データアクセス アプリケーションのトレースを採取する
- Data Access Tracing in SQL Server 2008
- Data Access Tracing (Legacy)
最新の SQL Server のデータプロバイダーである、Microsoft.Data.SqlClient では、イベントトレースの取得方法が BID から、EventSoure からのイベントの取得に変わっているようです。
有効化の方法については、SqlClient でのイベントのトレースの有効化 で記載されていますが、C# であれば、ドキュメントに記載されている方法でトレースを取得することができます。
PowerShell (7.0.2) で Microsoft.Data.SqlClient 2.0 を使用する の Windows PowerShell についての記述を追加していて、PowerShell で Microsoft.Data.SqlClient を実行した場合にもトレースが取得できるのかが気になったので試してみました。
今回、コネクションプールの調査でイベントトレースを使用していたのですが、System.Data と Microsoft.Data のイベントトレースの出力の違いについては、次のソースを確認してみても良いのではないでしょうか。
SQL Server エンジニアが学ぶ OSS DB (MySQL / PostgreSQL) の情報取得
普段は SQL Server を使用しているのですが、OSS の DB についても学習をする必要が出てきました。
私の場合、SQL Server を使用する際には開発ではなく管理側となり「SQL Server の各種情報を取得し分析する」ことが多いです。
その中で「OSS DB では通常、SQL Server で確認しているこの情報はどのように取得するのか?」という調査をすることになるのですが、「取り掛かりとしてどこを見ればよいのか」の勘所がわからなくて四苦八苦しています。
そこで、基本的なメトリクスを取得するためにはどのような情報を取得すればよいのかを少し調べてみました。
さらに踏み込んで情報取得について検討を行う必要があるとは思いますが、私が情報を確認しようとした場合には、これらの情報を足掛かりすると対応ができそうな感じでした。
Windows Server 2016 以降で利用できるようになった DNN の情報について
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 の高可用性環境には触れてきましたが、きちんと情報を調べるまで、雰囲気でしか理解できていませんでした…。