SE の雑記

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

Archive for the ‘SQL Database’ Category

Database Migration Assistant (DMA) で使用されているルールの抽出

leave a comment

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 のアセスメントで、移行のブロッカーとなる要素が検知されると、アセスメントの結果として次のように表示が行われます。

image

「どのような検索を行い、問題として検知しているか」については、抽出することはできないのですが、「どのようなルールが存在しているか」については、DMA のインストールディレクトリ内のファイルから、一部情報を確認することができます。

本投稿では、ファイルから SQL Database に移行する際のアセスメントで検知されるルールについて確認をしてみたいと思います。

使用しているスクリプトや出力結果については、こちら で公開していますので必要に応じて参考にしていただければと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

5月 19th, 2021 at 5:02 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

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 Database で sys.fn_xe_telemetry_blob_target_read_file を使用して標準取得されているテレメトリ情報を確認する

one 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

Azure Functions (PowerShell ランタイム) でマネージド ID を使用して SQL Database に接続を行う

leave a comment

Azure Functions の PowerShell ランタイムでマネージド ID (Managed Identity) を使用して SQL Database に接続をする方法についてまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 13th, 2021 at 11:09 pm

Azure で SQL Server ベースの環境の活用方法を学ぶためのコンテンツ

leave a comment

Azure の各機能を学習する場合は、各機能 (サービス) のドキュメントを確認することで学習ができます。

最近ですと Microsoft Learn を活用して機能を学習することもできますね。
Microsoft Learn 上では、SQL Server についてのコンテンツ も公開されています。

しかし、機能を活用するためのソリューションとして学習を行う場合には、各機能のドキュメント / Microsoft Learn の情報では足りなくなることもあるかと。

ソリューションとして学習する際には、どのようなドキュメントを確認すればよいかをまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 13th, 2021 at 11:27 am

DBCC SHRINKFILE によるファイル圧縮の動作 (データファイル編)

leave a comment

SQL Server では、DBCC SHRINKFILE という DBCC コマンドを使用することで、データファイル / ログファイルのサイズを圧縮することができます。

データベースのファイルを配置しているドライブの空き容量の不足や、大量の一時的なデータを投入後に、データの削除を行った後にデータベースの物理ファイルが過剰に増加している場合に、ファイルサイズを小さくするというような場合に使用するもので、一般的には日常的に使用するものではありません。

しかし、何らかの理由によってデータベースのファイル (mdf / ndf / ldf) が肥大化し、DBCC SHRINKFILE の実行が必要となるケースもあるのではないでしょうか。

本投稿では、DBCC SHRINKFILE を使用して物理データファイルを圧縮し、サイズを削減する際にはどのような動作になっているのかをまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 7th, 2021 at 11:01 pm

SQL Database で包括的なパーミッションによる動的データマスキングが可能となりました

leave a comment

次のアナウンスで情報が公開されていますが、SQL Database と Synapse Analytics で包括的なパーミッションによる動的データマスキング (Genular Permissions for Dynamid Data Masking) が可能となりました。

動的データマスキング (動的データマスク) の基本的な使用については次のドキュメントから確認することができます。

現時点では、SQL Database 向けの設定となっており、オンプレミスの SQL Server の最新バージョンである SQL Server 2019 では、包括的なパーミッションは利用することはできませんのであしからず。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 7th, 2021 at 11:38 am

Posted in SQL Database

Tagged with

SQL Server / SQL Database の行のバージョン管理の基本動作

one comment

SQL Server / Azure SQL Database では、行のバージョン管理 (RLV : Row Level Versioning) と呼ばれる機能を使用することができます。

通常、データのアクセス時にはロックが取得され、特定のアクセスパターンでは、検索についても同時実行性の低下につながることがあります。
SQL Server のデフォルトの設定では、検索時にもロックが取得され、更新系の処理が実行されている場合は、ロック競合により、検索がブロックされる動作が行われることがあります。

このような検索時の同時実行性の低下を抑えるため、SQL Server では行のバージョン管理という機能を使用することができます。

これは、MVCC (MultiVersion Concurrency Control) により、読み取り時にはロックを取得しないようにすることで、読み込みと書き込みが同時に行われていても、競合を発生させず、同時実行性の低下を抑えることができる機能となります。

Azure SQL Database では、この機能はデフォルトで有効になっているのですが、SQL Server では 2005 から実装が行われたものとなり、現時点の最新バージョンの SQL Server 2019 でもデフォルトでも無効な状態となっています。

本投稿では、SQL Server ベースの環境で、MVCC を実現するための行のバージョン管理がどのように実装されているのかを見ていきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 24th, 2021 at 4:04 pm

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

leave a comment

2021/3 の更新です。
Ignite 2021 関連の発表が多いですね。

情報を把握するために本日、一度投稿しましたが、月末にも再度更新しようと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 23rd, 2021 at 8:55 pm