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 »
Log Analytics の HTTP データ コレクター API を使用した SQL Database の情報収集
Intelligent Insights を使用した SQL DB のパフォーマンス監視
SQL Database のパフォーマンス監視する方法として、メジャーなものとしては次のようなものがあるかと思います。
- DTU の情報を使用したリソース (CPU / ディスク / 接続) の使用状況の確認
- クエリストアの情報を使用した、クエリに特化した情報の確認 (DMV または、Query Performance Insight)
今の SQL Database には、これに加えて「Intelligent Insights」という機能が追加されています。
本投稿ではこの、Intelligent Insights についてまとめてみたいと思います。
Read the rest of this entry »
SSMS 17.5 がリリースされいくつかの機能が追加されています
先日、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 »
WSUS のクリーンアップタスクの失敗時に追加で見ておきたいログ
先日、WSUS クリーンアップ ウィザードにてタイムアウトが発生する という記事が公開されましたが、クリーンアップタスクが失敗したときに追加で見ておきたいログの話を。 Read the rest of this entry »
SQL Server と Azure ストレージを組み合わせたデータベースの利用について (2018/2 版)
SQL Server はバージョンアップによって、Azure ストレージを使用して DB の領域として使用することができる機能が増えています。
- SQL Server 2012 SP1 CU2 以降 : バックアップの取得先として利用可能 (ブロック BLOB)
- SQL Server 2014 以降 : データベースのファイル格納先として利用可能
- SQL Server 2016 以降 : ページ BLOB を使用してバックアップを取得可能
- SQL Server 2017 以降 : メモリ最適化グループ用のファイルグループとして利用可能
Azure のストレージも、
- 汎用ストレージ v1
- 汎用ストレージ v2
- BLOB ストレージ
と様々なものがあります。
SQL Server のデータベースとしてどのようなものが使うことができるか一度整理してみました。
Read the rest of this entry »
SQL Server / SQL Database 用のモニタリングクエリ
まだ、作成途中ではありますが、SQL Server 2017 / SQL Database v12 向けのモニタリングクエリを https://github.com/MasayukiOzawa/MonitorDB で公開しています。
SQL Server 2017 on Windows については、データコレクションや、パフォーマンスモニターで各種情報を取得することができるのですが、現時点の SQL Server 2017 on Linux では、データコレクションが利用できず、パフォーマンスモニターに関しても Windows OS 側の機能なので利用することができません。
SQL Server のリソースの使用状況を確認する際に、パフォーマンスモニターの情報は有益であり、この情報を定期的に確認しないと、リソースの使用状況の把握が難しかったりもします。
sys.dm_os_performance_counters を使用することで、SQL Server のパフォーマンスモニターの情報を取得することが可能ですので、この情報を定期的にテーブルに取得することで、パフォーマンスモニターの代替としています。
SQL Server の場合は、次の手順で設定をしてください。
- 01.Create Database.sql を実行して DB を作成
- 02.Create Table.sql を実行して「MonitorDB」内に必要なテーブルを作成
- 01.Regular execution.sql を「MonitorDB」に対して実行して、定期的に情報を取得
SQL Server on Linux は Express でなければ、SQL Server Agent を使用することができるので、01.Regular execution.sql の内容を定期的に実行してもらえれば取得できるかと。
(Express の場合は、cron + sqlcmd で代替可能です)
SQL Database の場合は、02.Create Table.sql を診断対象の DB に対して実行して、Azure Function のスケジュール実行等で、定期的に 01.Regular execution.sql を実行してください。
データを蓄積したままでは容量がかなり消費されますので、定期的に 02.Data Retention.sql を実行して削除もお忘れなく。
本来は、診断対象と同一 DB ではなく、別の DB に取得が推奨ですので、01 のクエリで取得したデータを BULK INSERT で診断用情報格納 DB で保持するのがいいので、スクリプトを作ったのですが、まだ公開できるように整備できていないので、現状は各自で実装していただければ。
RDB ではなく、時系列 DB に入れてしまってもよいかと。
領域の使用状況については、03.Data Usage Check.sql で確認することができますので、どれぐらい領域を使用しているかはこのクエリで確認していただければ。
数10秒間隔で取得すると、数時間でもそれなりなデータ量となりますので、取得間隔は適宜調整してください。
03.Search で、各種情報検索することが可能です。
ある程度のパターンを用意してありますので、必要に応じて類似のクエリで拡張していただければと。
投稿を書いている時点では、SQL Server / SQL Database 共通で使用することができるようにしています。
SQL Database は、リソースの使用状況を DTU で見ることが一般的かと思いますが、sys.dm_os_performance_counters を使用することでも、各種情報を取得することが可能ですので、今後の情報取得の一助となれば幸いです。
SQL Server のフィードバックサイトが変更になっていました
今まで、SQL Server のフィードバックサイトは connect を使用していました。
昨日までつながっていたので、気づいていなかったのですが、connect が廃止され新しいものに置き換わっています。
Microsoft Connect Has Been Retired
SQL Server (Connect Site ID 68)
Effective January 1, 2018, the community feedback feature of the Microsoft Connect site for SQL Server has been replicated in UserVoice for the convenience of the community. We have captured all current/active public feedback for SQL Server that was entered into Microsoft Connect and transferred it into the new forum to help customers find relevant and active matching suggestions.
SQL Server の新しいフィードバックサイトは feedback.azure.com の方に移行されていますので、今後はこちらを使うことになるようですね。
![]()
クエリストアを利用した待ち事象の取得
SQL Server 2017 と SQL Database で利用可能な方法ですが、これらのバージョンでは、クエリストアの情報として、待ち事象の情報が追加されています。
待機クエリの検索
クエリストア自体が強力な機能なのですが、最新のバージョンでは、この情報に sys.query_store_wait_stats システムビューが追加されています。
Read the rest of this entry »
SQL Server on Linux の syslog をフィルターして OMS に連携する
OMS では標準機能として、syslog の連携機能を持っています
Log Analytics の Syslog データ ソース
上記のドキュメントに、次のように記載されているとおり、ファシリティ (Facility)と重要度 (Sevirity) で取得対象をフィルタすることができるようになっています。
OMS Agent for Linux は、構成で指定されているファシリティと重大度を持つイベントだけを収集します。 OMS ポータルを通じて、または Linux エージェントで構成ファイルを管理することによって、Syslog を構成できます。
![]()
Windows の場合、SQL Server 系のログがイベントログに出力されます。
Linux の場合は、syslog に出力されますので、syslog 経由でエラーの発生状況を監視することになるかと。
Read the rest of this entry »
OMS + collectd を使用した SQL Server のパフォーマンス情報の収集
Windows 版の SQL Server であれば、SQL Server の各種情報をパフォーマンスモニター経由で取得 / ロギングすることができますが、Linux ではパフォーマンスモニターは使用することができないため、ほかの方法で SQL Server のパフォーマンス情報の取得を検討する必要があります。
方法の一つとして、collectd を使用して取得することができるかと。
今回は、collectd で取得した情報を OMS 連携して、パフォーマンス情報の取得を実施してみます。
詳細については、Log Analytics で Linux エージェント上の CollectD からデータを収集する を参照して下さい。
本投稿は、Ubuntu の環境で試したものとなっています。
また、collectd の SQL Server の設定については、mssql-monitoring の設定を使用しています。
Read the rest of this entry »