SE の雑記

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

Archive for the ‘SQL Server’ tag

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

SQL Server のクエリのデバッグ実行について (2023/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

ワークグループクラスター (ドメインに依存しないクラスター) では Failover Cluster Instance を構築することはできません (2023-07 時点)

leave a comment

Windows Server 2016 以降は、ドメインのメンバーでなくてもクラスターを構築することができるワークグループクラスターの機能が追加されました。

ワークグループ クラスター (ドメインに依存しないクラスター) の Windows Server での構築方法については、Workgroup and Multi-domain clusters in Windows Server 2016 に記載されており、この方法を使用することでワークグルプ環境でも Windows Failover Cluster (WSFC) を構築することができます。

ワークグループクラスターは SQL Server の可用性環境の構築でも活用することができるのですが、Always On Failover Cluster Instance (FCI) では使用することはできません。

現時点では、ワークグループクラスターで構築ができる可用性環境は Always On Availability Group (AG) のみとなります。

最近 TechNet フォーラムで 本件についての質問 があったのですが、ワークグループクラスターで FCI がサポートされてないことを明記した情報が探しづらいかなとも感じましたので情報をまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 19th, 2023 at 10:56 am

Posted in SQL Server

Tagged with

SQL Server の Assertion のダンプについて

leave a comment

SQL Server ではダンプが出力されるエラーの種類としては、[A15] SQL Server Trouble Shooting Tips from Support Team by Takashi Honma で解説されている次のような種類があります。

  • Access Violation
  • Assertion
  • Latch Timeout
  • Non-yielding Scheduler
  • Deadllock Schedulers
  • Non-yielding Resource Monitor
  • Non-yielding IOCP Listener

この中で Assertion (アサーション) のダンプについてまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 17th, 2023 at 9:09 pm

Posted in SQL Server

Tagged with

SQL Server のカーソルの動作を把握する

leave a comment

SQL Server のカーソルの動作について、理解が薄い個所がありましたので、調べた内容をまとめておこうと思います。

カーソルについては次の情報を参考にするのが最初のステップとなるかと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 17th, 2023 at 2:10 pm

Posted in SQL Server

Tagged with

SQL Server エージェントのジョブ所有者がローカルアカウントを使用している場合の挙動について

leave a comment

以前、SQL Server エージェントで Transact-SQL を実行する際に使用されるログインについて という投稿を書きました。

この投稿の中では、sysadmin ロールに含まれていないログインをジョブの所有者に設定した場合の挙動に触れてみました。
ジョブの所有者が sysadmin ロール以外で、Windows 認証のログインを使用している場合、OS 側のログインが無効の状態になっている場合、どのような挙動となるかについて確認する必要がありましたので、その内容をまとめておきたいと思います。

ローカルアカウントではなく、ドメインアカウントを対象としたものについては、次の情報を確認してください。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 12th, 2023 at 10:38 pm

Posted in SQL Server

Tagged with