連載
» 2022年03月14日 05時00分 公開

FILE TABLEのハンドルの一覧に関する情報を出力するSQL Server動的管理ビューレファレンス(92)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、FILE TABLEのハンドルの一覧に関する情報の出力について解説します。

[椎名武史,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

SQL Server動的管理ビュー一覧

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_filestream_non_transacted_handles」における、FILE TABLEのハンドルの一覧に関する情報の出力について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)です。

概要

 SQL ServerではFILESTREAMの機能を使用することで、非構造化データ(ドキュメントやイメージなど)をファイルシステムに格納できます。FILESTREAMの機能によって、ファイルシステムのストリーミングAPIをアプリケーションで活用できるほか、非構造化データとそれに対応する構造化データの間でトランザクションの一貫性を維持できます。

 FILESTREAMの機能を使用するには、SQL ServerインスタンスでFILESTREAM機能を有効化して、データベースやテーブルにFILESTREAMデータを格納できるように構成する必要があります。

 FILESTREAMの機能を使用したFILE TABLEはトランザクションを使用せずに非構造化データをファイルシステムに格納できます。「sys.dm_filestream_non_transacted_handles」ではFILE TABLEのハンドルの一覧に関する情報を出力します。

出力内容

列名 データ型 説明
database_id int データベースのID
object_id int オブジェクトID
handle_id int ハンドルのID
file_object_type int ハンドルの型
file_object_type_desc nvarchar(120) ハンドルの型の説明。次のいずれかになる
 UNDEFINED
 SERVER_ROOT
 DATABASE_ROOT
 TABLE_ROOT
 TABLE_ITEM
correlation_process_id varbinary(8) 要求したプロセスのID
correlation_thread_id varbinary(8) 要求したスレッドのID
file_context varbinary(8) ファイルオブジェクトへのポインター
state int ハンドルの状態
state_desc nvarchar(120) ハンドルの状態の説明。次のいずれかになる
 ACTIVE
 CLOSED
 KILLED
current_workitem_type int ハンドルが処理されている状態
current_workitem_type_desc nvarchar(120) ハンドルが処理されている状態の説明。次のいずれかになる
 NoSetWorkItemType
 FFtPreCreateWorkitem
 FFtGetPhysicalFileNameWorkitem
 FFtPreCleanupWorkitem
 FFtPostCleanupWorkitem
 FFtPreCloseWorkitem
 FFtQueryDirectoryWorkItem
 FFtQueryInfoWorkItem
 FFtQueryVolumeInfoWorkItem
 FFtSetInfoWorkitem
 FFtWriteCompletionWorkitem
fcb_id bigint ファイル制御ブロックのID
item_id varbinary(892) ファイルまたはディレクトリのID
is_directory bit ディレクトリかどうか
item_name nvarchar(512) 項目の名前
opened_file_name nvarchar(512) 要求されたパス
database_directory_name nvarchar(512) データベースのディレクトリ名
table_directory_name nvarchar(512) テーブルのディレクトリ名
remaining_file_name nvarchar(512) 残りのディレクトリ名
open_time datetime ハンドルが開かれた時刻
flags int 次の値を示すフラグ
 ShareFlagsUpdatedToFcb = 0x1
 DeleteOnClose = 0x2
 NewFile = 0x4
 PostCreateDoneForNewFile = 0x8
 StreamFileOverwritten = 0x10
 RequestCancelled = 0x20
 NewFileCreationRolledBack = 0x40
login_id int ログインのID
login_name nvarchar(512) ログインの名前
login_sid varbinary(85) ログインのSID
read_access bit 読み取りアクセス用
write_access bit 書き込みアクセス用
delete_access bit 削除アクセス用
share_read bit 共有読み取り許可
share_write bit 共有書き込み許可
share_delete bit 共有削除許可

動作例

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。