SE の雑記

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

Archive for the ‘SQL Server’ Category

SQL Server 2022 の blocked_report の出力内容の強化

leave a comment

SQL Server ではブロッキング (ロック競合) 情報を取得する方法として Blocked Process Report イベント クラス の情報を拡張イベントで取得するという手法があります。

SQL Server 2022 では、この情報に出力される内容が強化されていることに先日気づきました。

Read the rest of this entry »

Written by Masayuki.Ozawa

11月 6th, 2023 at 9:41 am

ENABLE_PARALLEL_PLAN_PREFERENCE ヒントを使用した場合に確認しておきたいポイント

leave a comment

SQL Server では「ENABLE_PARALLEL_PLAN_PREFERENCE」という、クエリの並列化のコストを満たしていない状態でも、並列化の指示を出すための ヒント句 がアンドキュメントなクエリヒントとして提供されています。

このクエリヒントを使用すると、シングルスレッドで実行されているクエリを並列化することができる可能性があるのですが、並列化された際に確認をしておきたいポイントがあります。

Read the rest of this entry »

Written by Masayuki.Ozawa

10月 15th, 2023 at 11:43 pm

Posted in SQL Server

Tagged with

SQL Server / SQL Database Update (2023/08 中旬~9 末)

leave a comment

時間が取れず、直近の SQL Server ベースの環境のアップデートをまとめられていませんでしたので、SQL Server / SQL Database Update (2023/08 上旬) 以降に発表されたものをまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

10月 4th, 2023 at 4:44 pm

SQL Server 2016 で特定のクエリの実際の実行プランを容易な操作で取得する

leave a comment

現在の SQL Server では、軽量クエリプロファイリングが提供されており、様々なアプローチで「実行中のクエリの実際の実行プラン」を取得する方法が提供されています。

本機能は SQL Server 2014 SP2 / SQL Server 2016 から実装が行われ、Azure SQL Database / SQL Server 2019 以降では既定で有効になっています。

この機能を活用することで、冒頭に記載した「実行中のクエリの実際の実行プラン」を取得することができます。

Read the rest of this entry »

Written by Masayuki.Ozawa

9月 10th, 2023 at 2:25 pm

SQL Server で DB の管理者権限を付与した状態でデータへのアクセスを無効にする

leave a comment

SQL Server ではデータベースの操作を行うためには sysadmin 固定サーバーロールまたは db_owner 固定データベースロールの権限が必要となることがあります。

これらの権限はインスタンスまたはデータベースの管理者の権限が付与されるため様々な操作が可能となります。

特定の操作を可能にするため、sysadmin / db_owner の権限を付与する必要があるが、データの秘匿性を担保するためデータへのアクセスについては拒否したいというケースもあるのではないでしょうか。

本投稿では管理者の権限を付与した状態でデータへのアクセスを拒否する方法についてまとめておきたいと思います。
この方法は SQL Server だけでなく SQL Database でも使用することができます。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 29th, 2023 at 9:31 am

Azure VM での NVMe の利用と SQL Server の対応について

leave a comment

投稿時点では、Ebdsv5 / Ebdsv5 シリーズのインスタンスを使用した Azure VM では、ディスクとの接続インタフェースとして NVMe を使用することができます。

Ebdsv5 シリーズは VM サイズ: Azure VM 上の SQL Server のパフォーマンスに関するベスト プラクティス で記載されているように、幅広い SQL Server のワークロードを動作させるために推奨される VM となっています。

今後、Azure VM で SQL Server を動作させる際に最適なパフォーマンスを発揮するためには NVMe の利用を検討するシーンも出てくるかと思い検証をして得られた知見をまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 24th, 2023 at 11:43 pm

Posted in Azure,SQL Server

SQL Server のクエリのデバッグ実行について (2024-08 更新)

leave a comment

SQL Server ではクエリのデバッグ実行をするための T-SQL デバッガーの機能が含まれており、サポートするツールからのクエリ実行について、ステップ実行しながらデバッグをすることができます。

普段は管理用のクエリを書くことが多く、ユーザーから実行されるクエリを書くことに直接携わることは少ないのですが、ユーザーワークロードのクエリ実行で確認したいことがあり、デバッグ実行したほうが早いかなと思い、投稿時点の T-SQL デバッグの情報についてまとめてみました。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 23rd, 2023 at 10:33 am

Posted in SQL Server

Tagged with

sys.dm_db_index_operational_stats と sys.dm_db_index_usage_stats の違いについて

leave a comment

SQL Server / SQL Database のインデックスの使用状況を確認するための代表的な情報として次の DMV があります。

どちらもインデックスの使用状況を取得することができますが、情報には特色がありますので本投稿でまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 22nd, 2023 at 9:50 am

SQL Server / SQL Database Update (2023/08 上旬)

leave a comment

直近の SQL Server ベースの環境のアップデートを確認できていなかったので、2023/4 以降の更新をまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 8th, 2023 at 9:53 pm

sys.databases をカーソルで参照する場合は、Snashot ベースのカーソルを使用することで動作が安定するというお話

leave a comment

先日 SQL Server のカーソルの動作を把握する という投稿しましたが、sys.databases をカーソルで参照する際には、Snapshot ベース音カーソルを使用したほうが動作が安定するかと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 19th, 2023 at 7:11 pm

Posted in SQL Server

Tagged with