SE の雑記

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

Archive for the ‘SQL Database’ Category

同一のリソース名のマネージド ID が存在する場合の SQL DB のユーザー作成について – 暫定版 –

2 comments

SQL Database の認証には、Azure のリソースのマネージド ID (MSI) を使用することができるようになっています。

マネージド ID をサポートしているサービスについては  Azure リソースのマネージド ID をサポートするサービス に記載されていますが、これらのサービスが接続をする際にはマネージド ID による接続ができる可能性があります。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 19th, 2020 at 11:42 pm

Posted in Azure,SQL Database

Tagged with ,

イベントハブに送信されている診断ログを SQL Database の DB で受信する

leave a comment

以前から、イベントハブに送信された Azure の診断ログを SQL Databae に取り込むということができていたかと思います。

昨年末ぐらいに、Azure SQL Database Stream Analytics 統合という機能がプレビューとして提供され、SQL Database のブレードからも Stream Analytics によるデータ取り込みの設定を行うことができるようになりました。

image

ブログのログをイベントハブに送信しながら、Stream Analytics から SQL Database のテーブルにデータ取り込みを実施してみたのでその時の覚書を。

今回はブログのフロントに配置している Front Door の診断ログ (アクセスログ) をイベントハブに送信し、それをテーブルに受け取るような設定を使っています。
(1 か月回していると、それなりの金額になりそうですので、今は BLOB に出力されている JSON を Data Factory 経由で取り込みを行うようにしています。)

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 18th, 2020 at 11:19 pm

SQL Server のスレッドおよびタスクのアーキテクチャ

leave a comment

スレッドおよびタスクのアーキテクチャ ガイド というドキュメントがあります。
このドキュメントでは SQL Server のスレッドやタスクについての解説が行われています。
この投稿では、DMV を使用しながらこのドキュメントに記載されている内容を見ていきたいと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

2月 29th, 2020 at 10:01 pm

SQL Server の統計情報の手動メンテナンスについて

2 comments

最近、SQL Server の基本動作をいろいろと再勉強しているのですが、その中で統計情報のドキュメントを一通り読み直していました。

TPC-H の LINEITEM を使用して、いくつかのパターンで統計情報のメンテナンスを手動で実施しながら動作の確認を行った際のメモを。
Read the rest of this entry »

Written by Masayuki.Ozawa

2月 2nd, 2020 at 10:31 pm

SQL Server へのクエリ実行の「コマンドタイムアウト」の情報取得について考えてみる

leave a comment

アプリケーションから 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 »

Written by Masayuki.Ozawa

1月 16th, 2020 at 8:51 pm

SQL Databaese の Ring Buffer の Time Stamp を日付に変換してみる

leave a comment

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 »

Written by Masayuki.Ozawa

1月 13th, 2020 at 8:51 pm

Posted in SQL Database

Tagged with

tempdb のロギング最適化による最小のログ記録の動作を確認してみる

leave a comment

SQL Server の tempdb では、ロギング最適化という動作により、トランザクションログの書き込みを最小限にするようにされています。
最近は、「SQL Server を使いこなす」という観点での勉強を進めており、その中でトランザクションログの書き込み内容の解析も多少できるようになってきましたので、tempdb のロギング最適化による、最小のログ記録の動作についても、実際のトランザクションログの書き込み内容を元にしてみていきたいと思います。
(本投稿の最小のログ記録については、一括挿入を実行する際等の最小ログ記録とは別の動作です)
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 5th, 2020 at 4:47 pm

SQL Database のリソース割り当てについてのドキュメントが公開されています

one comment

先日、SQL Database Hyperscale のパフォーマンスについては SQL Hyperscale のパフォーマンスのトラブルシューティング診断 で公開されていることを書きました。
通常の SQL Database についてもパフォーマンスの調査時に重要となるリソース割り当てについてのドキュメントが、いくつか公開されていたようです。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 4th, 2020 at 5:02 pm

Posted in SQL Database

Tagged with

INSERT を例にしたトランザクションログの内容の確認

leave a comment

SQL Server のトランザクションログの内容を確認する際のアプローチとして「DBCC LOG 」や「sys.fn_dblog」を利用して内容を確認するという方法があります。
これらの DBCC や関数はアンドキュメントとなっており、詳細な情報は公開されていません。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 26th, 2019 at 12:02 am

RaspberryPi 4B で Docker と IoT Edge ランタイムを起動するための準備

one comment

Azure SQL Database Edge は、x64 ならびに ARM64 のデバイス上で動作させることができる、コンテナーの SQL Server となります。
(SQL Server は、2016 以降は x86 は提供していないため、SQL Database Edge も x64 のみとなります)

SQL Database Edge を稼働させるための準備として、RaspberryPi 4B (ラズベリーパイ4 / ラズパイ4) を購入したので、下準備として Docker と IoT Edge ランタイムを動作させるまでの方法をメモとして残しておきたいと思います。

IoT 関連は全く触ってきておらず、ラズパイを使うのも初めてに近いので、そもそもとして間違っていることがあるかもしれません (

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 7th, 2019 at 12:40 am