SE の雑記

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

Archive for the ‘SQL Database’ Category

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 の行のバージョン管理の基本動作

leave a 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

SQL Server のクエリ実行プランのコスト値について

leave a comment

SQL Server のクエリ実行時に取得することができる実行プラン (実行計画) の中には、「コスト」という情報が出力されています。
代表的な項目としては、サブツリーの推定コストや、グラフィカルな実行プラン内のコストのコストの比率の情報となるのではないでしょうか?

image

本投稿では実行プラン内のコストがどのような情報を表しているものなのかの情報を確認していきたいと思います。

本投稿を書いた理由ですが「Nick’s Machine」という用語を思い出すためだったりしますが。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 21st, 2021 at 6:44 pm

Microsoft.Data.SqlClient 3.0 Preview 1 で設定可能な再試行ロジックが追加されるようです

leave a comment

本日、次の 2 つのアナウンスがありました。

Microsoft.Data.SqlClient 3.0 では、ユーザーが設定可能な再試行ロジックを利用することができるようになるようです。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 17th, 2021 at 10:25 pm

非クラスター化インデックスのキー項目の変更時の処理オーバーヘッド

leave a comment

非クラスター化インデックスのキー項目を変更した場合、どのようなオーバーヘッドが発生するかについてまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 15th, 2021 at 11:16 pm

SQL Server / SQL Database における CPU 使用率 (CPU 使用時間) とは?

leave a comment

SQL Server / SQL Database で CPU 使用率が高い場合、CPU を使用しているクエリの特定を行い、CPU 負荷を低減させるという作業を行うことがあるかと思います。

SQL Server / SQL Database で CPU 使用率が高い状態とは、そもそもとしてどのような状態を指しているのでしょうか??

今回は情報を取得しやすい SQL Server で情報を取得していますが、基本的な考え方は、SQL Databse でも同様です。

また、クエリによる CPU の利用を考える際には、スケジューラーやスレッドの意識も重要となりますので、本投稿についてはそれらについても触れておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

3月 7th, 2021 at 10:21 pm