PowerShell でグラフの描画をしようとしたとき、Chart Control を使用してグラフを作成するという方法があります。
単純なグラフがこれ以外の方法で描画できないかなと思い探してみたところ、Graphical というモジュールが手軽に使えそうでしたので、少し試してみました。
Read the rest of this entry »
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
PowerShell でグラフの描画をしようとしたとき、Chart Control を使用してグラフを作成するという方法があります。
単純なグラフがこれ以外の方法で描画できないかなと思い探してみたところ、Graphical というモジュールが手軽に使えそうでしたので、少し試してみました。
Read the rest of this entry »
Azure の IaaS (仮想マシン) に SQL Server をインストールした場合、AlwaysOn 可用性グループで可用性を向上させることが多いかと思います。
IaaS の SLA は Virtual Machines の SLA に記載されており、可用性セットや Premium SSD を使用することで稼働率を上昇させることは可能です。
AlwaysOn 可用性グループを使用した場合は、可用性セットによる稼働率の向上を行いますが、IaaS の可用性セットでは、可用性セット内のいずれかのインスタンスへの接続を保証することになるため、クラスター内のいずれかのサーバーが停止した時間が発生するということになります。
クラスターの標準の設定であれば、数秒程度の停止であればフェールオバーを発生させることなくシステムを稼働させることはできますが、メンテナンスで数 10 秒停止するようなケースでは、フェールオーバーが発生することになります。
メンテナンスが発生した場合に、できるだけフェールオーバーを発生させないようにするための情報については、いくつかの情報が公開されていますので、本投稿ではその情報をまとめておきたいと思います。
Read the rest of this entry »
アプリケーションから SQL Server / SQL Database にコマンド (クエリ) を実行する際には、「コマンドタイムアウト」(クエリタイムアウト) について考慮をしておく必要があります。
ADO.NET の SQL Server 向けのドライバーではデフォルトでは 30 秒に設定されています。
コマンドタイムアウトの時間に達すると「Timeout expired.? The timeout period elapsed prior to completion of the operation or the server is not responding.」「実行タイムアウトの期限が切れました。操作完了前にタイムアウト期間が過ぎたか、サーバーが応答していません。」のエラーが発生し、クエリの実行がキャンセルされます。
アプリケーション側で Exception をキャッチして、その時に実行されていたクエリなどをロギングするようになっていれば、「どのようなクエリによりタイムアウトが発生したか?」を確認することができますが、そのようなロギングの仕組みがない or 情報が不足している場合に、サーバー側観点だけでどのような情報取得の対応ができるか、考えてみました。
Read the rest of this entry »
2020/1/16 11 時 時点の内容ですので、少しすると変わっているかもしれません。
あと、私の環境固有かもしれません。
新しくなった Microsoft Edge (Chromium ベースの Edge) ですが、次の URL からダウンロードできます。
https://www.microsoft.com/en-us/edge
Download ボタンからダウンロードできますが、日本語以外の言語の EULA が表示されたり、ページをリロードするたびに EULA の言語が中国語版だったり、英語版だったりと、私の環境ではダウンロードされるインストーラーの言語が安定しませんでした…。
何回かリロードしていると日本語版がダウンロードできるんですけどね…。
言語によってファイルハッシュが異なっているようなので、インストーラーは各国語向けになっていそうではありますが、日本語版のインストーラーを簡単に入手したい場合は次の URL から入手できるかと。
(表示される EULA の言語によって、language の指定が変わっているようです)
https://c2rsetup.officeapps.live.com/c2r/downloadEdge.aspx?ProductreleaseID=Edge&platform=Default&version=Edge&source=EdgeStablePage&Channel=Stable&language=ja
SHA256 のファイルハッシュが 3D4014D834922321AB4F50576DADC2E0A843E82C72CB8CFD1AA23D7241BE540C のファイルであれば日本語のインストーラーになっていると思います。
追記
知人に教えていただいたのですが、製品チームも本事象は把握されているようです。
We've seen some reports about the browser being installed in a language other than the expected language. Our team is aware and working diligently to resolve. Please keep an eye out here for any updates!
— Microsoft Edge Dev (@MSEdgeDev) January 15, 2020
SQL Server / SQL Database では、「sys.dm_os_ring_buffers」という Ring Buffer の情報を確認することができます。
「Using sys.dm_os_ring_buffers To Diagnose Memory Issues in SQL Server」 等で解説をされているのですが、SQL Server の様々な情報をメモリ上に確保している DMV となります。
この DMV では timestamp という値を持っているのですが、この値を加工するためには、sys.dm_os_sys_info の ms_ticks を元にして、コンピューターを起動してからの経過時間を使用していつのイベントなのかを確認するのが一般的です。
しかし、sys.dm_os_sys_info については、SQL Database では使用することができず、この DMV では、コンピューターを起動してからの経過時間を取得することができません。
SQL Database で timestamp を実際の時間に直す方法が何かないか考えてみたのですが、sys.dm_os_memory_cache_clock_hands の round_start_time の最大値で代替できそうでした。
Read the rest of this entry »
SQL Server の tempdb では、ロギング最適化という動作により、トランザクションログの書き込みを最小限にするようにされています。
最近は、「SQL Server を使いこなす」という観点での勉強を進めており、その中でトランザクションログの書き込み内容の解析も多少できるようになってきましたので、tempdb のロギング最適化による、最小のログ記録の動作についても、実際のトランザクションログの書き込み内容を元にしてみていきたいと思います。
(本投稿の最小のログ記録については、一括挿入を実行する際等の最小ログ記録とは別の動作です)
Read the rest of this entry »
先日、SQL Database Hyperscale のパフォーマンスについては SQL Hyperscale のパフォーマンスのトラブルシューティング診断 で公開されていることを書きました。
通常の SQL Database についてもパフォーマンスの調査時に重要となるリソース割り当てについてのドキュメントが、いくつか公開されていたようです。
SQL Server のトランザクションログの内容を確認する際のアプローチとして「DBCC LOG 」や「sys.fn_dblog」を利用して内容を確認するという方法があります。
これらの DBCC や関数はアンドキュメントとなっており、詳細な情報は公開されていません。
先日書いた、日本語環境でも動作するようになったデスクトップ UI フローを触ってみたメモ では、オンプレミスデータゲートウェイのリージョンの設定によって、UI フローで使用できるかが変わるというような動作が確認できました。
オンプレミスデータゲートウェイは、いつも、インストーラーをポチポチするだけであまり情報を追っていなかったので、この機会に少しまとめておこうかと思います。
Read the rest of this entry »